944 Turbo DIY TunerPro Chips

Talk and Tech about turbocharged 924/944/968 cars
User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
I’ve spent quite a bit of time tuning my own chip for the 944 Turbo and wanted to share my process and open a discussion for those interested in making their own chips. I’ve organized this into a series of topics, each with their own linked post, so you can skip around and read up on what’s of most use to you. All comments welcome!

And, as always, everything posted here is subject to the Carpokes Terms of Service, meaning, among other things, that the files provided here are for noncommercial use only and are provided with no warranties – all tuning is done at your own risk!

1. Big Picture Overview
2. Hardware Needed
A. EPROM
B. EPROM Emulator
C. EPROM Programmer
D. EPROM UV Eraser
3. Software Needed
4. Basic Plan for Building a Performance Chip
5. Fuel Pressure and Injector Size Adjustments
6. Injector Dead Time Latency Adjustments
7. Overboost Maps
8. Full Throttle Fuel Maps
9. Full Throttle Timing Maps
10. Idle Speed Maps
11. Other Maps
12. Downloads (BINs & XDF Files)

Additional References and Deep Dives

#1

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
1. Big Picture Overview

Tuning your own 944 Turbo chip has never been easier. Jim Conforti, Autothority, Dinan, FR Wilk, Weltmeister, and others all did heavy R&D back in the day to reverse-engineer the DME computer that runs the 944 engine. As time went by, more and more tuning info came to light in the Porsche community. Josh Cunningham of Rogue Tuning ultimately made his own tuning guide available to the public in 2009, which was a major milestone for DIY 944 tuners. The information in this thread leans heavily on the work done by others, including our own johnb and Dave W here on Carpokes (with credit and much gratitude), and tries to build on that by filling in some gaps and bringing it all together in a digestible way.

The ‘chips’ in the DME are old-school EPROMs (Erasable Programmable Read Only Memory), and the data on the chip is often called the BIN, since that is the file format (binary) used to store the entire chip image on your computer. To make your own performance chips, you need some way to get BIN files on and off the EPROM, some way to know what memory locations to edit, and some way to make those edits to the BIN file. To get BIN files on and off an EPROM, you can buy all the hardware needed for about $100 (specifically, an EPROM programmer, UV eraser, and the EPROM chip itself). To then make edits to the BIN files, you can use a free program called TunerPro. TunerPro relies on user-made files called XDF files, which tells TunerPro where all the maps are located for your particular car.

Although not strictly necessary, you can also get a small electronics device called the Ostrich 2.0 that plugs into the DME and pretends to be (i.e., emulates) an EPROM chip. With the Ostrich emulator, you can use a laptop with TunerPro to tune the maps while the engine is running, eliminating the need to program actual EPROM chips and swap them in and out of the DME. This saves considerable time and energy, not to mention wear and tear on the DME itself, since otherwise you need to burn chips and install them in the DME repeatedly as you refine your maps. If you plan to do any actual tuning, the Ostrich is highly recommended.

Whenever you ‘chip’ a car, a boost gauge and wideband oxygen sensor are a near-necessity. The wideband oxygen sensor gives you real-time air-fuel ratio (AFR) readings, which are critically important. I won’t get into tuning strategies here, but you generally want to keep the AFR between 11:1 and 12:1 under boost, with 11.8 being a good target. If you start to run leaner, up into the high 12’s or higher under boost, you run a very strong risk of knocking/pinging and blowing your head gasket. Unless you tune on a dyno, a good wideband oxygen sensor is the only way to know how close you are to those targets. I use the Zeitronix wideband, but there are many good ones out there. If you have or are considering the Focus 9 DME, you might want to consider a wideband system it can log, such as AEM, Autometer, or Innovate.

Another helpful monitoring tool, especially if you plan to play with the ignition timing, is some way to monitor for knocking/pinging. Vitesse Racing makes a product called V-knock that provides a lot of nice features for monitoring knock. Alternatively, you can make a cheap knock counter using instructions found right here on Carpokes. Both will tell you when the car is knocking, and how much, which is invaluable as you tune the car.

If you’d rather not tune your own chip, but still want to ‘chip’ your car, I’ve included simple performance chip images for free download. They are very much a community-driven effort, so must be used at your own risk, of course, and are not street-legal in certain jurisdictions such as California.

#2

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
2. Hardware Needed

A. EPROM Chips

In the 944 Turbo DME, there is an old-school EPROM chip (Electronically Programmable Read Only Memory) that holds all the ‘maps’ needed to tune the car, such as fuel and timing maps, among other things. The DME in the early 944 Turbo uses a 2732 EPROM, which holds 4096 8-bit numbers (i.e., 4k bytes, or 32k bits). The later cars use a 2764 EPROM, which hold 8,192 8-bit numbers (i.e, 8k bytes or 64k bits). You can easily tell the difference because the 2732 chip has 24 pins, whereas the 8k chip has 28 pins. On the 28-pin chip, the first 4k of memory contains the machine-language instructions/program needed to run the DME’s processor, and the upper 4k holds the tuning data you edit when making your own chips. On the 24-pin chips, the only information on the chip is the tuning data, with the DME’s programming code residing elsewhere in the DME.

28pin.jpg
28pin.jpg (124.42 KiB) Viewed 3856 times

Importantly, the tuning map structure is the same whether residing alone on a 4k chip or in the upper half of an 8k chip. As such, if you have a good tune on a 24-pin chip, you can copy it over to the upper half of an 8k chip without problems, as long as you preserve the programming data in the lower 4k of that chip. Similarly, you can copy the tuning map data from the upper half of a 28-pin chip and burn it onto a 24-pin chip.

These EPROMs were made by most of the big chip manufacturers back in the ‘80’s, each with their own unique part numbers. They are out-dated technology today, however, so you may not find them at the big electronics suppliers. You can typically find them on Amazon, eBay, etc. by searching for 2732 or 2764 EPROM. I get mine from Jameco Electronics in California. The actual chips tend to have additional letters in their part numbers, signifying the manufacturer, the type of technology used, etc., but just about any of the variants will work. Here are a few that I’ve used:

https://www.jameco.com/z/AM27C64-150DC- ... 39829.html

https://www.jameco.com/z/AM2732B-200BDC ... AREALw_wcB

#3

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
2. Hardware Needed

B. EPROM Emulator – Moates.net Ostrich 2.0

The Ostrich 2.0 is an EPROM emulator with a long ribbon cable that plugs into the DME in lieu of the normal EPROM chip, and connects to your laptop via a USB port. You can then make all tuning edits straight from TunerPro RT to the emulator and see the results immediately, even while the motor is running. Once you are happy with your tune, you can either leave the Ostrich in the car permanently or burn an actual EPROM chip with your final image. Without the Ostrich, every edit requires you to remove the EPROM from the DME, erase it with a UV eraser, burn a new image onto it using the EPROM programmer, and then re-install the newly-burned chip in the DME. Either way works, but the Ostrich speeds up the tuning process exponentially and avoids wear and tear on the DME. The Ostrich only works with 28-pin DMEs, however, but it’s cheap and easy to convert a 24-pin DME into a 28-pin DME. See instructions for doing that here. Once converted, the Ostrich will work fine – just remember you will need to use 8k chips/maps, and not the 4k chip/maps that came with the DME.


Ostrich-in-situ.jpg
Ostrich-in-situ.jpg (251.23 KiB) Viewed 3837 times

As of the summer of 2025, the Ostrich 2.0 is available for $175 directly from its maker, Moates.net. You can buy it here.

The Ostrich is not the only EPROM emulator available, but it’s particularly well-suited for this application, and is specifically supported by TunerPro RT. RT is the ‘real-time’ version of TunerPro that interfaces with the Ostrich, not to be confused with the regular non-RT version. Beware of a company called BoostedNW, which makes a series of claims about selling the Ostrich and/or a similar replacement. I originally believed their claims and tried to order from them, and it was a frustrating exercise in futility. Google for ‘BoostedNW reviews’ if you want to get a sense of their reputation. You’ve been warned!

#4

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
2. Hardware Needed

C. EPROM Programmer

If you want to program an actual EPROM for your DME or KLR, you will need an EPROM programmer. Fortunately, these once-expensive devices have been commoditized and are available on the cheap from places like eBay, Ali-Express, and Amazon. There are many programmers available, just be sure you confirm that you buy one capable of programming 2732 and 2764 EPROMs. I use a generic programmer made in China and sold under various names like ACEIRMC T48 TL833-3G and Xgecu T48 TL866-3G, shown here.

programmer.jpg
programmer.jpg (130.91 KiB) Viewed 3832 times

#5

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
2. Hardware Needed

D. EPROM UV Eraser

To erase an EPROM chip, just about any UV EPROM eraser will do. These erasers have a light inside with a specific wavelength (253.7nm) that erases all data on the EPROM. You just pull out the sliding drawer, put your EPROM(s) inside and let the light zap it for about 15 minutes. If you google for EPROM eraser, there are 2 or 3 popular units that appear all over the Internet, each so generic they generally don’t have brand names. If you shop around, you can get one for about the cost of lunch at McDonalds. I use the one pictured below as it tends to be the cheapest and works just fine. When you erase an EPROM, be sure to remove the sticker on top to expose the clear glass window, so the UV light can get inside to erase the memory. Once erased, be sure to re-cover the glass window to keep unwanted sunlight or other UV light out.


UV-eraser.jpg
UV-eraser.jpg (90.99 KiB) Viewed 3831 times

#6

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
3. Software Needed

TunerPro is free software you can use to modify the maps in your chips. If you plan to use the Ostrich emulator, you want to get the ‘real time’ version called TunerPro RT. You can download the latest versions of TunerPro and TunerPro RT here: https://www.tunerpro.net/downloadApp.htm

TunerProRT.jpg
TunerProRT.jpg (77 KiB) Viewed 3811 times

Once you have TunerPro, you will also need a chip image to use as your starting point for tuning, and something called an XDF file. The XDF file is essentially a table of contents to the maps on the chip. When you tell TunerPro you want a 920 RPM idle speed, for example, the XDF converts 920 into a number the DME interprets as 920, and stores it in the specific memory location used for that purpose. We can thank our reverse-engineering pioneers for unearthing the important map locations! There are at least two community-developed XDF files in general circulation for the 944 Turbo, although both have some errors that prevents certain maps from working. We've combined the best of those XDF files into one, corrected the errors, added more maps, and posted our own XDF files in the download section here on Carpokes.

In many cases, when you enter a value in TunerPro, the software will convert that number to something different for DME use before entering it into the BIN. For example, if you look at the fuel scaling locations in the BIN for the FQS switch (e.g., 0x17B), you’ll see 0x80 (decimal 128) in that location. The DME is coded to interpret 128 as the base case for fuel flow, and will increase or decrease fuel in proportion to any deviation from 128 found in that cell. It’s logical, but not all that human friendly. As such, the XDF files are set up to do some math behind the scenes, so that the numbers you see and edit in TunerPro make intuitive sense (where possible). For the FQS cells, for example, our XDF allows TunerPro to show flow in pounds per hour. If you ever need to dig into the hex BIN values, just keep in mind they may or may not match the numbers you see in TunerPro. If they don’t match, you can see the conversion used for any particular parameter by clicking on the XDF tab > View/Edit Parameter XDF Info >Conversion.

Here is a video that gives you the basics on how to use TunerPro RT.

#7

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
4. Basic Plan for Building a Performance Chip

To make your own performance chip for the 944 Turbo, you can start with a stock BIN and make surprisingly few edits to unlock the potential for significant increases in horsepower. Beginners would be wise to focus on a basic tune --one that will let you run 15psi without hitting overboost, with nice street manners, an 11.8:1 AFR under boost, and no consistent pinging. As long as you use an aftermarket boost controller, there is no need to change the factory KLR chip, but if for any reason you need to run the factory boost controller, see the experimental KLR Chip posted below. The basic steps to tune the DME chip are:

FQS Fuel Scaling
. Make sure the FQS settings for your chip are correctly calibrated for the injectors and fuel pressure you’ll be using. If you are using stock injectors and fuel pressure regulator, you can leave these settings alone. If you have bigger injectors and/or have increased the fuel pressure, however, you’ll want to scale the fuel flow using Fuel Pressure and Injector Size Adjustments. Doing this will ensure the DME knows how much your injectors are actually flowing, so this is a mission critical step if you have changed your injectors or fuel pressure. If you have changed your injectors, be sure to also see Injector Dead Time Latency Adjustments below and make any adjustments needed for the injectors you are using.

Overboost Protection. Eliminate or adjust the overboost protection maps, so that you can run additional boost. Adding boost is where you will pick up power, so this step is at the core of all performance chips. If you don’t do this, the DME will hit its notorious ‘brick wall’ and kill all power once the boost exceeds its relatively modest limits. See Overboost Maps below.

Full Throttle Fueling. After making the edits above, you can then move to editing your actual fuel and timing maps. To keep things very simple to start, I’d recommend simply adding extra fuel to the full throttle maps. The factory maps are a bit on the lean side for a higher-boost car, so start by adding fuel across the RPM range in the full throttle maps, adding boost in very small increments so that you can monitor your AFR on full boost to redline. Shoot for 11.8:1 from the onset of full boost and all the way to redline. Don’t exceed 15psi on pump gas to be reasonably safe. Endless tuning strategies exist to speed up spool time and max out power, but keep it simple to start.

Other Changes. Once you’ve made the basic changes above, you should have a working ‘performance chip’ for your car. From there, you can experiment with ignition timing at full throttle (keeping a very close eye on your knock counter/monitor) and other adjustments for power and good drivability.

#8

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
5. Fuel Pressure and Injector Size Adjustments

The stock 944 Turbo chips are mapped for use with the stock 384cc/min injectors and stock 2.5 Bar fuel pressure regulator. To change that for different fuel pressures or injectors, you can adjust the fuel quality switch (FQS) settings in TunerPro. The FQS is a rotary switch on the DME with 8 positions (0 to 7), which can be used to make global scaling adjustments to the fuel flow, as well as ignition timing adjustments. The factory included it as a way to accommodate different levels of fuel quality around the world, but we can repurpose those settings to account for bigger injectors and more fuel pressure. In TunerPro, you'll need to adjust the flow rate for the particular FQS switch position you plan to use.

FQS MAP.jpg
FQS MAP.jpg (56.88 KiB) Viewed 3692 times

In our XDF file for TunerPro, the FQS numbers are entered as injector flow rates in lbs./hr. In the table above, it shows the flow set at 34.6 pounds per hour for FQS positions number 0 and 4 -- i.e., the flow rate of the stock injectors at 2.5 Bar fuel pressure. If you were running 62 lbs./hr. injectors at their rated pressure of 3 Bar, for example, you can simply enter 62 in the desired FQS position and all the fuel maps will be scaled accordingly. (But see injector dead-time adjustments below.) Flow ratings for nearly all injectors are based on 3 Bar of fuel pressure. If you keep the factory 2.5 Bar fuel pressure regulator, or run anything other than 3 Bar of pressure, you will need to adjust the FQS flow rate to account for the change in pressure. The math for doing that is summarized below, but to make things easier, here is a chart showing the numbers to enter into the TunerPro’s FQS cells for various injector flow rates and fuel pressures. It shows 2.5, 3, and 3.8 Bar because those are the common fuel pressure regulators that fit the 944 turbo.

FQS-Final-Chart.jpg
FQS-Final-Chart.jpg (137.49 KiB) Viewed 3289 times

The Math: If you want to do your own math, you'll need to know what your injectors are actually flowing in lbs./hr. at whatever pressure you are running, and enter that in the FQS cells. As an example, the stock injectors are rated to flow 384cc/minute at 3 Bar of fuel pressure, which translates to about 37.9 pounds of fuel per hour (assuming a typical gallon of E10 gas weighs about 6.2 pounds). However, the stock 944 Turbo has a 2.5 Bar fuel pressure regulator, so the injectors will flow less than that.

How much less? The change in flow is proportional to the square root of the quotient of the new pressure (2.5 bar) divided by the original pressure (3 Bar). Doing that math: 2.5/3 = .833... and the square root of that is ~.9129. So if the injectors flow 37.9lbs./hr. at 3 Bar, they will flow 37.9lbs./hr. x .9129 at 2.5 Bar, i.e., 34.6. Not surprisingly, that’s the number you’ll see in TunerPro when looking at FQS position 0 on a stock chip. If you were running an adjustable fuel pressure regulator at 3.4 Bar, for example, you’d get ~40.3lbs./hr. using the same math. The square root of 3.4/3.0 is 1.0646, so the stock injectors flow 1.0646 x 37.9lb/hr or 40.3lbs./hr. at 3.4 Bar. Note that this is also what you’d get by interpolating between the entries in the chart above.

Injector Flow Minutia:
You might be wondering why I say the stock injectors flow 37.9lbs./hr. at 3 Bar when most online sources say the 944 Turbo injectors flow 36 to 37lbs./hr. That's due to the way flow ratings are converted into pounds per hour. The injectors are rated at 384cc/min at 3 Bar, and there is no official rating in pounds per hour. To come up with a pounds per hour rating, you need to convert a volume of gasoline (cc’s) into a weight of gasoline (pounds). To do that, you need to make an assumption about how much gasoline weighs. The going rule of thumb is to divide cc/min by 10.5 to get lbs./hr. For the 944 Turbo injector, that means you would divide 384 by 10.5 to get about 36.6 lbs./hr., which is consistent with many online estimates. However, the 10.5 rule of thumb assumes gasoline weighs 6 pounds per gallon, whereas E10 gasoline in the US is closer to 6.2 pounds per gallon. At 6.2 pounds per gallon (6.22 to be exact), 384cc/min converts to 37.9lbs./hr. The reality is gasoline will vary in weight based on its formulation and ambient temps, so there is a false precision in this math, but using 6.22 pounds per gallon yields a more accurate conversion for typical US gasoline.

XDF and BIN Numbers Minutia:
The XDF is set up so that the numbers are easy for humans to understand. It then does math behind the scenes to populate the actual BIN files with numbers the DME can use. The DME works on a proportional increase or decrease from the number 128 – i.e., the mid-point of a single memory location’s range of 0 to 255, thereby giving it the same range whether adjusting up or down. That number is used to determine how long to open the injectors, so if the injectors flow more, the injectors don’t need to open as long and the number in the BIN needs to go down. As an example, if you have 62 pound injectors and a 3 Bar fuel pressure regulator and enter 62 for positions 0 and 4 in the FQS, you would see hex 47 (decimal 71) in the BIN. This is because the bigger injectors need to stay on about 55.8% (34.6 /62) as long at 3 Bar to flow the same as a stock 944 Turbo (128 x .558 = ~71).

Final Thoughts:
In practice, scaling the fuel using the FQS works quite well with most injectors, though it’s possible some injectors may not scale in a linear fashion across their entire flow range. For example, an injector that flows twice as much as a stock injector at 100% duty cycle may not flow exactly twice as much at a 50% duty cycle. Just something to keep in mind as you tune. And, various injectors will have different ‘dead-times’ such that the flow at idle and very low loads can be wrong despite perfect FQS scaling. For that, be sure to see the “Injector Dead Time Latency Adjustments” below. Don’t be tempted to ignore the dead-time and tune around it in the regular fuel maps. You’ll end up chasing the tune endlessly, like a dog after its own tail.

#9

User avatar
Tom
Site Admin
Posts: 8827
Joined: Fri Jun 25, 2021 2:04 pm
Location: Silicon Valley, CA
Has thanked: 913 times
Been thanked: 3901 times
Contact:
6. Injector Dead Time Latency Adjustments

Injector dead time and/or latency is just fancy lingo for how long it takes for the injector to start flowing once the DME gives it power to turn on. When the DME sends power to an injector, it needs to charge up an electromagnet that then pulls the injector valve open. Doing that takes time, and that time is dependent on voltage and fuel pressure levels. In general, the lower the voltage and the higher the pressure, the longer it will take the injectors to start flowing. Dead time adjustments account for this.

For example, if the injectors need to flow for 1.5ms (1.5 milliseconds) to idle nicely, and the injectors have a .9ms dead time, these adjustments will tell the DME to turn on the injectors for a total of 2.4ms. Incorrect dead times will have a much more pronounced effect on idle and low loads than they will under boost, simply because they represent a much larger fraction of the total injector on-time.

The 944 DME has a simple 2-cell adjustment for dead times -- one cell for high voltage and one for low voltage. The DME then interpolates between those numbers to approximate the dead time for any particular voltage. Higher numbers leave the injectors on longer and supply more fuel. Lower numbers supply less fuel.

The Carpokes XDF converts the BIN entries and displays them as milliseconds in TunerPro. If you buy aftermarket injectors, they should come with deadtime specs to help you make these adjustments. If all works as intended, you can just plug in your numbers, but in reality some trial and error may be needed to settle on the best deadtime values. This is especially true if you are using large injectors that struggle to flow well at very short pulses. Modern engine management systems have a separate table for this called “short pulse width adders” which you can adjust separately from dead time, but for our purposes we need to adjust for non-linearity via the dead time. If you need to add significantly more deadtime than the specs suggest to get a good idle, it may be the injectors are just not a good fit for the car, as you will be forced to accept either a poor idle or an excessive deadtime that throws off the other fuel maps.

By way of example, I have Bosch EV14 62lbs./hr. injectors from Five-O-Motorsports, with a 3 Bar fuel pressure regulator. I used 62 in the FQS settings, and the AFR for anything over idle is nearly identical to stock, meaning the FQS scaling works perfectly. At idle, however, the motor ran very lean due to the injectors having a longer deadtime than the stock injectors. To find the sweet spot, I let the engine warm up and kept it idling as I increased the high-voltage dead time cell, ultimately settling on .73ms at 16.1v, which is nearly identical to the published spec of .71ms at 16 volts. The extra deadtime fixed the idle and had no noticeable effect otherwise. The low voltage cell also needed a larger number, which I based on how easily the engine would start up while cranking. System voltage drops when cranking the starter, so using this as a tuning guide is practical if nothing else – and in my case results in a car that fires up faster than ever when turning the key. The published spec for my injectors is 2.1ms at 8 volts, but I found the best overall manners were achieved at 1.7ms at 8.1 volts. Keep in mind the DME interpolates between the high and low values, so a change to either number will affect the entire latency scale.

#10

Post Reply