Make your own free website on

Turbo Upgrade for VG30DETT

ECU Tuning
Turbo Introduction
Turbo Size Comparison
Compressor Maps
Engine Dynamics
Turbo Selection
Fuel Suply
Air Fuel Ratio
Alternative Fuel
ECU Tuning
Contact Info
ECU Forum
My Z32 TwinTurbo 2+2

ECU Tuning for VG30DETT

by Petri Karjalainen

Special thanks to all who have contributed in this area:
Devin for initiating and writing the ECU tuning info and revision.
Petri for contributing the ConZult tracing info.
Check ECU download page for the latest downables.

Message Board

ECU Tuning
by Devin (Z from Japan)

To start off with I will first give you some background information about the Zs EPROM. I am going to keep this very basic as we do not need to be programming or emulation experts to be able to make very good custom tunes for our cars. The stock EPROM is a 27C25685. The 27 determines the basic type of EPROM which in our case is a 28 DIP or 28 dual in-line pin with two rows of 14 pins each. There are also smaller and larger EPROMS within the 27 series but they do not pertain to us. The C is for ceramic which is the kind of material the EPROM is made of and also plays role in its performance. The 256 stands for the memory capacity of the EPROM and our particular chip is broken up into 32 segments of 8bits each. 85 is the speed of the EPROM in nanoseconds(ns). The ECU requires that the EPROM runs at a certain minimum speed which is about 100ns but I feel it is good to keep them as fast as the stock 85ns or faster. Here is where it gets kinda tricky though. The speed is always defined as 2 digits, so an 85 is 85ns, and a 55 is 55ns, but a 20 is actually 200ns and would be far too slow to be used on our ecus. Just remember to look for something between 85 and 45 and youll be okay.

Now that you have the basic understanding of our EPROM, the next challenge is to understand how the information is written inside of it. The contents of the EPROM are made up entirely of a programming base called hexadecimal or hex for short. This is a 16 digit base that goes as such; 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. After F the numbers start over again with 10,11,12,13,etc. Our normal numbering is called decimal or abbreviated dec for short. So our normal 9dec is equal to 9hex, and 10dec is equal to Ahex. Larger numbers get more complicated such as 16dec is equal to 10hex, and 20dec is equal to 14hex. As you can see it becomes very important to specify what base we are using since the numbers can look very similar but have very different values. I have made up a very basic decimal to hexadecimal conversion chart that will be useful to you. Look for the file Dec to Hex Chart.xls. Very large numbers like FFFFhex is equal to 65535dec and being that we do sometimes use numbers as large as this in tuning, a scientific calculator is a wise investment especially if you plan on tuning EPROMs for customers. Windows has a scientific calculator that works pretty good but switching screens all the time is inconvenient.

One small note on binary files (.bin). This is the format in which EPROM codes are usually stored. You are about to become very very familiar with them.  They are going to become much like mp3 files in that most of us do have some on our pcs even though we did not buy them. For studying purposes only of course, I ask that if you have some .bin files or some tuned EPROMs, please share them with each other. The more .bin files you own, the more study information you will have, and the faster you will progress in your tuning skills.

Even though some of this information may sound too complicated to grasp, dont worry. I will keep it simple enough that even if you dont understand the large majority of it, you will have the ability to program your own ecu by yourself. And if that doesnt sound good enough, I will even give you a *free tuned EPROM code* that all you have to do is download. In return for this valuable information, I ask nothing from you but to please share this information freely with each other.

Within this short novel, I am going to describe the tuning equipment you will need and want both as a user and a shop owner. I will explain the basic set up of the EPROM code, and describe the tuning basics like removing the limiters. I will also tell you how to tweak the fuel and timing maps, and even explain the advanced tuning techniques like adjusting for larger injectors and dual intakes. The once evil EPROM that held your Z within a cage of restrictions, is about to become your best friend.


Chapter 1:  Stuff Youll Need and Stuff Youll Want

As an ECU tuner, here is a list and description of some tools you will want to have. I have separated them into two sections -  Basic tuning equipment and advanced tuning equipment. This listing is based upon my opinion of what is valuable but is not all encompassing.

Basic Tuning Equipment

Tool Box Of course the normal tools for removing the ECU and opening it up are necessary. A screw driver and a 10mm racket will be frequently used. I think just about every Z owner has a pretty good assortment of tools.

EPROM Socket this is a little bridge that will be soldered in place of your stock EPROM. With the socket installed you can swap out EPROMs by hand within minutes. These are pretty darn cheap too. Most TV / VCR Repair shops will carry these but it is good to pick up a few good quality ones. I buy a lot of my small electronics from JDR Microdevices and they have really good service. The kind of socket you will want is a 0.6 wide 28DIP. The part# on JDR is MPSOC-28 and they are about $1.00 each. Here is its web page >

EPROM Emulator An EPROM programmer, of course, programs EPROMs. An EPROM emulator on the other hand is a device that is inserted in place of an EPROM which in turn mimics that EPROM. The big advantage of an emulator is that you can quickly alter and download new .bin file programs to your ECU without programming new EPROMs every time. This real time emulation means that you can make immediate changes to anywhere in the code (fuel maps, timing maps, etc,etc) while the car is running! So within a few hours of testing and tuning you can have a slamming custom tuned program for your car. Also later on when you upgrade to larger injectors, dual intakes, etc. you will be able to download the new .bin file for those mods and run the car immediately! Sounds cool huh? You can even make and download special valet programs that limit the performance of the car, safe daily driver programs, high performance drag racing programs, and specialized auto-Xing programs that have a richened fuel curve.

Most EPROM emulators are very expensive and complicated to use. However, our ECU only requires a very simple and common EPROM and therefore we do not need anything fancy or hi-tech. Fortunately for us there is one that is very affordable and will support our 27C256 EPROM. It is called the Pocket Romulator and it is sold by Xtronics . It is $179.00 and here is its web page . I bought one recently and have just started to play with it.

{ I am searching for an inexpensive emulator with realtime trace. Something in the arena of $400 would be ideal. If anyone finds one please let me know. }

EPROMs these are not required for the basic tuner and are not required for the emulator, but eventually most of you will move on to programming them so you might as well buy a few now. Besides, they are pretty cheap and you can order them on JDR while buying the EPROM sockets. The kind of EPROM you are looking for is a 27C256. I normally buy the 27C256-55. This is a good fast EPROM and they cost about $5.00 each. They are also erasable and hence reusable. Here is their web page >

Just a note on spark plugs and timing checks, ensuring that your car in top running condition will greatly improve the quality of your tunes. Having the correct spark plugs with the proper gap is essential. In my opinion, it is good to pick up at least 2 sets of copper NGK ZFR7F-11 plugs. In theory the copper will help to protect your engine by melting or blowing off in the event of a bad tune that is too lean or with the timing too advanced resulting in detonation. These are also a step colder than the stock platinums and will allow for more boost which is kinda the idea right? Once you feel that your car is running at peak performance, then throw in a set of colder than stock platinums. They are more detonation resistant and will last much longer than copper. Also, please learn how to read your plugs. There is loads of information and pictures all over the net that explain how to do it.

A related issue is timing. Most Zs have had their timing screwed with at some point and most owners do not know where their timing is set. The proper stock timing is 15 degrees and it is vital that you set your timing to this. Since you will be electronically adjusting the timing within the ECU Timing Map, it is of utmost importance that your base timing on the CAS (crank angle sensor) is the same 15 degrees every time. The primitive technique of adjusting your base timing to make more power is obsolete!   

Advanced Tuning Equipment

Anti-Static Wrist Strap this is a little strap that you put on your wrist and attach the grounding cord to your desk or project. Its purpose is to keep you grounded out. Even a small amount of static electricity build up on you or your clothes is enough to destroy all kinds of expensive electrical goodies. I personally own a wrist strap but I neglect to use it. I have been fortunate so far in that I havent destroyed anything yet (that video card wasnt my fault). If you ask anyone who frequently works with pcs they will tell you how important grounding yourself out is. JDR sells these straps for $7.00 each so they are a good inexpensive investment. Here is their page > .

EPROM Programmer If you are a shop owner and may be in the position of tuning customer cars, a good, reliable, and easy to use EPROM programmer will be a very valuable tool. A programmer can run from $100 to $1000 or more. My personal favorite is the Andromeda Researchs Eprom+ Kit. It can program a slew of different EPROMs, has great easy to use software, and can even be ordered with a tutorial program that teaches you how to program. It is a fantastic piece of equipment. I highly recommend ordering the upgraded Eprom + Field Kit because it comes in a closable convenient little plastic case and includes a Datarase II EPROM Eraser within the same case. You can slap some old EPROMs in the eraser while programming new EPROMs for customers. The kit closes up neatly and can be brought wherever you go. If you have a plug-in DC to AC converter and a laptop, you can program EPROMs right inside of your customers car. Andromeda Researchs web page is > . Their Eprom+ Field Kit is $389.00 and its web page is >

Solder Sucker One of the biggest obstacles to tuning ECUs is the removing the stock EPROM. It must be removed cleanly with as little excessive heating of pc board as possible. I have tried a number of techniques and tools with little to moderate success. If you have a junk ECU give it a try and see how difficult it is. I have found that the majority of TV / VCR Repair shops have high quality internally-heated solder-sucking guns. For most of the people in that profession, desoldering a 27C256 EPROM is a joke and that is good news for us. I have become friends with a shop that works on broken car stereo equipment, and paying them to desolder the stock EPROM and solder in a socket is only $10 - $20. It takes them all of 9 minutes to complete the job and it is done perfectly! I have found this to be the best technique for a professional install and it works out well monetarily. If you really want to do this yourself, then invest in a high-quality solder sucker station. It will be a few hundred dollars at a minimum.   

Scientific Calculator As you progress with your tuning skills you will become more and more comfortable using the hex code. Until that time comes you will have to convert the hex to dec quite frequently so that you have a better idea of what you are looking at. If you have a lot of hex to dec conversions to make then an easy-to-use scientific calculator is a necessity. They are cheap at around $35.00 and they will be one of your new best friends.

EPROM Puller If you find yourself in a position where you are frequently pulling and swapping the EPROMs then an Eprom Pulling tool is worth its weight in gold. I paid about $35 for mine and I love it. You can also use a small screw driver by very carefully slipping it between the tuned EPROM and the socket then slowly lifting each side individually by 1-2 millimeters until it comes free. However, regardless of how careful you are you will eventually (and hopefully not frequently) bend the cute little legs on the EPROM. If you do bend the legs, you can straighten them with a pair of tweezers by very slowly squeezing and moving them. The legs do break very easily and if bent far enough they can not be saved. I bought my Eprom Puller at a local electronics store and you can probably find them locally too.

Conzult I dont know the full details of this piece of equipment yet but I have read the reviews on and I know this is on my personal must buy list. I have tuned lots of ECUs without it, but it will help you as a pro-tuner to dial in customers cars faster. It can datalog the stock sensors (and I believe it also datalogs the points of the maps). With this information you can accurately adjust the mapping and settings within the ECU and squeeze out all the power possible. Also if you find that a certain rpm is too lean or is having detonation, you can fix that area and maintain the full power in the rest of the map. Very very cool diagnostic tool when combined with custom ECU tuning.

Oh yeah, it also reads the error codes and translates them too. How convenient.

Lambda or Wide Band O2 Sensor These are unfortunately expensive, but if you are a shop owner you may already have one. Most dyno facilities have them too. These very accurately tell the real air / fuel of the exhaust gases. Believe it or not, the ECUs Fuel Mapping is quite accurate as well but not immune from user errors or mechanical related issues. For example, the Fuel Map may say 12.0 to 1 AirFuelRatio but a weak fuel pump or broken Fuel Pressure Regulator may result in a much leaner burn. I plan on getting one of these eventually but they start around $1000.00 so eventually may be a long ways away.  

EGT (Exhaust Gas Temp) Sensor and Air / Fuel Ratio Sensor Although not necessities, these can help you understand the actual condition of your exhaust gasses while driving on the street. Any equipment that helps you understand what the chamber conditions are will help you dial in the car better. They are not that expensive but installation on the Z can be tricky.


Chapter 2:  Getting Your ECU Ready

Here is the procedure for getting your ECU ready. First you will need to remove it from the car. Make sure to disconnect the battery first.



Once you have the ECU out of the car, unbolt the top cover as such:

Next, carefully unbolt the small pc board and set it to the side as such:


This ECU has been previously tuned as you can tell by the EPROM with the ROMTUNE sticker on the top. This is the location of the stock EPROM and you need to remember it. When you go to the TV / VCR Repair shop they will not know what to pull so you must show them.

EPROMs are also directional like a lot of our cars tires and they must be inserted in the proper direction to function. Take a look at this pic:


Notice the notch on the EPROM. This is like the directional arrow on your tires. When the EPROM is properly placed in the ECU the notch will face inwards towards the center of the ECU.

The pic below is a properly socketed EPROM. Take a look at the notch on the top of the socket.

Sockets are not directional but their notch helps us to know what direction the EPROM should be inserted.

Chapter 3:  File Arrangement

One of the best ways I have found to keep track of files and information is to make a folder for everything pertaining to each individual tune that you make.

For example, take a look at this pic of my personal files:

By separating them like this it is easier to keep your tunes organized. When you start to get a lot of experimental tunes sometimes they get mixed up and you can lose valuable information. Not good.

Within each folder is 1) the .bin file of that code, 2) a quick reference Excel (.xls) file for the Fuel Map, 3) another quick reference Excel file for the Timing Map, and 4) an Excel file of the rest of the tuned locations or addresses called Global.

Here is an example below. This is the stock JDM code and it is the most important code in my opinion because all the future codes will be based off of this.

In the provided Tuning Bible I have included three folders: Stock Z32 which is the stock JDM code, Z32 370cc this is a simple tuned code for just about any Z with 370cc injectors - I will give you more details about its contents later - , and Blank Z32 this has blank Excel files that you can print out and fill in with your own tuning info for own custom codes.

At this time please open the folder Stock Z32 and print the files Stock Z32 Global, Stock Z32 Fuel, and Stock Z32 Timing.


Chapter 4:  Tuning for Dummies

This title is not meant as an insult and you will most likely appreciate the simplicity of this section. The first thing I learned to do when I got my EPROM reader / programmer was how to copy a tuned EPROM from a certain unnamed Japanese company. I really didnt know what I was looking at and it didnt matter either. What I saw was a fat profit margin and went after it. As I slowly learned more about the functions inside this tuned EPROM I came to find out that there was not a whole lot of tuning skill involved in what was done. Later as I my skills increased and I gathered more tuned EPROMs from various companies I would always find mistakes or less than ideal sections within the code. It is a strange feeling to have the ability to make a better program than most of the professional tuning shops.

As you learn more about this code and compare it to what was considered to be the standard for many years, you are going to feel like your eyes have been opened. Your mind and your fingers are going to make a program that out performs everything else that is commonly available on the US market today.


Now that you have the Stock Z32 Global sitting in front of you, I am about to explain the guts of your ecu and how to adjust them to your desires.

Everyone knows by now that the 27C256 EPROM is an 8 bit EPROM with 32 sectors. 8 times 32 is 256, hence the name of the EPROM. The information or code inside the EPROM is stacked in a way that certain legs on the EPROM access certain sectors of the code. When you are accessing the information is it normally displayed as raw data in pages of 16 X 16 resolution. That is 16 columns across with 16 rows down (16x16=128), or essentially a page of 128 slots of information. Each slot is better known as an address. So in our ecus EPROM we have 256 of these pages times 128 addresses per page for a total 32768 slots. Also since we normally talk in hex, 32768dec is equal 8000hex. Our EPROMs addresses start at 0, so likewise they end at 7FFF. For example, the address for our Top Speed Limiter is 7FA5. By altering the data at 7FA5 you alter your top speed limiter!

Here is another example:


The 7D00-7DFF page shown here is your fuel map. I will show you how to alter it as well.

Nittier and Grittier

Within the folders I have included two FREE .bin codes which are ribbed for your pleasure. One is called M4.bin and it is the stock bin code for the 89-91 JDM auto TT Z. It works on a lot of Zs although you probably will not be using it. It makes a good reference code for studying and comparing. The other code is 300Z.bin. This code has a simple tune done to it and by all means should make more power and run safer than the JWT tune. The 300Z.bin code is also a great base to start with when making more advanced tunes. I will discuss the exact details of it point by point in the section below.

The large majority of the valuable information is stacked towards the end of our code so I will start with the end addresses first and work my way backwards.


7F91 Feedback Control.

I dont know everything about chip tuning and I know some things that I am not allowed to talk about. The Feedback Control kinda falls into a gray area in that I do know some things about it and how to adjust it, but I am not really familiar with it. What I do know I promised not to talk about. The good news is it doesnt pertain to 99.99% of the 300Zs out there. Even if it would pertain to your car, it is minor change and has never been adjusted by any tuner in the US.

7FE0 7FE8 Knock Sensor Map

I know a little bit about adjusting this but I am not really familiar with it. I have never seen this adjusted by any tuner in the US or Japan (except for Technosports but they scramble their codes) so it is not a huge deal.

7FB4 Rev Limiter

The stock value at 7FB4 is 8C which of course is hex. 8C in decimal is 140. 140 times a conversion factor of 50 equals 7000, which of course is the stock rev limit of 7000rpms. So lets say that you want a rev limiter of 7300. Dividing 7300 by 50 leaves 146dec which is 92hex.

How high you set your rev limiter is very important. There is lots of power up there especially on modded cars so a high rev limit can mean a faster car. On the other hand revving too high is impossible.. errr I mean bad, very bad. I personally like the rev limit of 7300rpms for cars with stock injectors and this is the set limit I used on the 300Z.bin code. Even with this limit set it is possible to exceed it on hard pulls. I believe the momentum of the internals on a hard acceleration will allow for a few hundred rpms more than the limiter. I have seen tuned ecus with limiters from 7000-7500rpms, 7600rpms with bumped fuel pressure, and 8000rpms with built internals. I suppose that a insanely modded Z could theoretically handle up to 10,000rpms.

7FA5 Top Speed Limiter

Of course there is no need for this right J ! Well, I guess if you wanted to make a valet mode program then you could set it really low to prevent the valet or mechanic from playing pole position with your car. Here is how it works. The stock Japanese value at 7FA5 is 5C. The Japanese cars are limited to 184km/hr for the top speed and this is the limiter on the M4.bin code. 5Chex equals 92dec, 92 times a conversion factor of 2 equals 184. 184 is the top speed limit of the Japanese ecus. So changing the value to FF equals 255dec, times 2 equals 510km/h. So your new top speed limiter is 510km/hr which should be enough to take out most of the Hondas in your neighborhood. The 300Z.bin code and almost all the other tuned ecus have the limiter removed.

Just a funny side note, I have a really old Option Video from 1989 that shows the release of the 300Z in Japan. The first thing they did was go to a high speed oval course and attempt some top speed runs. JUN came along and what seemed like a fantastic thing at the time, removed the top speed limiter.. that was the extent of their tuning for the 300Z LOL. In 1989 there was not much that could hang with a 300Z with the top speed limiter removed J .

7F88 Injector Latency

Injector Latency aka Void Blast-off Time deals with the time it takes for an injector to open and close. Large injectors take longer to open and close than small injectors and since we are talking about trying to adjust pulse widths in milliseconds, this becomes an important factor especially in regards to a smooth idle, and good gas mileage when upgrading injectors.  Fortunately for stock injectors Nissan already set this factor and as long as you are on stock injectors this does not need any adjustment. I will talk more about adjusting this later in advanced tuning techniques.

7F2B 7F2C K Value

The K Value, sometimes referred to as the Injector Value, is simply a multiplication factor used for setting the pulsewidth of the injectors. When incoming air passes by the MAF sensor, the sensor then sends a voltage signal back to the ecu. The ecu reads the voltage signal on the VQ Map and assigns a numerical value to the voltage. That numerical value is then multiplied by the K Value in a mathematical formula to find the proper pulsewidth need for a 14.7 AFR (air fuel ratio) *at any engine load and rpm*. Got it? Sounds complicated but it is actually kinda simple.

Well, first of all, if you have stock injectors then you can leave the K Value alone. However, when larger injectors are installed the pulsewidth needs to be lowered accordingly otherwise you will run the same pulsewidth as the stock injectors and probably flood the engine. Also since only a few Zers out there have upgraded injectors I will leave this subject for the chapter on advanced tuning.


7E80 7E8F TTP Min

TTP Min stands for Total Theoretical Pulsewidth Minimum. This sets a certain minimum pulsewidth to keep the engine running in cases where the voltage signal from the MAF may drop too low. A good example is on a hard deceleration or a hard shift where some air may pass back through the MAF and cause the engine to stall. All of the tuned ecus that I have seen keep these values stock and likewise I left it stock on the 300Z.bin code. Still I feel that Nissan set it a bit high, probably to keep the some unburnt fuel in the exhaust to keep the cats hot. It is okay to lower these numbers especially on low load, high rpm conditions. When you upgrade injectors you will also want to lower this since the minimum pulse width needed for large injectors is less than that of small injectors. 

7E90 7E9F TTP Max

The TTP Max is a pulsewidth limiter of sorts. The ecu has a number of enrichments like the Fuel Map, Throttle Enrichment, and Water Temp Enrichment, as well as the possibility of problems with over boost or problems with the MAF sensor which can send the pulsewidth figures through the roof. The TTP Max limits the total pulsewidth by rpm and I believe it is based upon the rpm scale for the fuel map (7B00 7B0F).

As you add breather mods and increase boost on the Z the engine is going to ingest more air and likewise need more fuel. Increasing the values will allow for this extra fuel and allow the engine to maintain the proper AFR at higher than stock engine loads. From what I have seen the stock values are pretty good but a slight tweaking should be done on any car with higher than stock boost.

The stock values are 22,22,3D,3F,48,4F,54,5D,63,64,64,64,6A,6A,6A,6A.

JWT increases the last 7 values to  88,88,88,88,88,88,88. This allows for more fuel on the high end while keeping the low end stock.

These are the values I used for the 300Z.bin code 22,3F,4F,6F,8F, AF,AF,AF,AF,AF,AF,AF,AF,AF,AF,AF. This allows for a little more boost and fuel down low which is especially good on fast spooling cars. The top end is also quite a bit higher than stock or the JWT code. Some Japanese tuners set the top end values to FF but I cant ever see this kind of pulsewidth being possible.

7800 78FF Primary Timing Map

Print out the file Z32 370cc Timing and take a look at it.

First of all these funky values need to be explained. In the upper most left hand side of the map you see the value 0F. This is the area of the map that is accessed while your car is at idle. The values are hex of course and must be converted to decimal. 0Fhex is equal to 15dec and that is the timing at idle, 15 degrees. Pretty easy right?

When you press the gas pedal and the engine revs up, the area that the ecu accesses moves to the right and down. More specifically the engine load is represented on a horizontal scale and rpms are represented on a vertical scale. As more air passes by the MAF sensor the accessed area moves to the right. As the rpms increase the area accessed moves down.

To keep the timing curve smooth, once the area accessed moves past idle, the ecu will use the average of a square block of 4 values. For example, lets say that at high boost and high rpms, your ecu access the block at the lower right hand side of the map. The values are 14,14,on top and 13,13 on the bottom. So 14hex is 20dec, and 13hex is 19dec. So here we go, (20+20+19+19) / 4 = 19.5 and that is degrees of timing used for this area.

Now some of the values on the map are huge, like A0, 9A, 8F, etc. These values are like 140dec and up and obviously we cant run 140+ degrees of timing so what does this mean? There is a Knock Map within the Timing Map and this map is the area with the values of 80hex and higher. In this area, the ecu is looking for any knock readings from the knock sensor. If knock is detected then the ecu can take steps to protect your engine from permanent damage. The actual value 80hex is equal to 00 in degrees of timing. So anytime you see a value of 80hex or higher, just subtract 80 to get the actual timing. For example, take the value of 9E. 9E subtracted by 80 leaves 1E, 1E is equal to 30dec, or 30degrees of timing. See, simple right?

Just so you know this particular timing map is the stock timing map for the Japanese ecu. Since we can get 100+ octane right out of the pump here in Japan, our ecus timing is a bit more advanced than the US ecus. This is actually a pretty good timing map for a lot of Zs in the US since Nissan is rather conservative IMHO. I used this stock map for the 300Z.bin code and with this bumped timing it by most means will deliver more power than the stock US ecu and even the JWT ecu at equal boost levels. In fact some of the tunes that I have seen in Japan actually increase the timing over stock.

Of course there comes a point where the boost is too much for the set timing and there are a number of ways to remedy this. Lets say that your car starts detonating at 17psi, meaning that 15-16psi is safe but 17 is too much. The simplest fix is to turn back the CAS. This will retard the timing in the entire timing map. While it may allow you to run more boost and make more peak hp, you will lose power in all the other parts of the map.

If you know the location of your detonation, you can just fix that area. For example, lets say that at 17psi you have detonation but it doesnt start until 4500rpms. Well at around 13psi you are going to exceed the load limits (as seen on the TP Scale Timing) of the map. That means that at 13psi and up the ecu is going to use the values from the last (farthest right) column for all engine loads beyond the map. So now we know we are on the farthest right column in the timing map. Next to find out what row we are on. Within the code there is a set of values called the Rpm Scale Timing. These set the rpm access points for the timing map. As you can see on the left hand side of the Excel Timing and Fuel Maps I have already converted these values to rpms. So at 4500rpm row and right-most column is the point where the detonation is occurring. By retarding the timing and / or increasing the fuel, the detonation can be eliminated without hurting the rest of the power band.

Later I will explain Map Expansion and that is where things get really interesting. Like the example above the car was detonation free up to 15-16psi. Well, if by altering the values in the right most column we are changing the timing for pretty much all boost levels above 13psi. Wouldnt it be nice to keep the higher timing (and the power) of the non-detonating 13-16psi boost levels and just retard it for the levels above that? It can be done when the Maps are expanded. Just FYI, none of the tuned ecus that I have seen except for the JUN ecu have expanded maps. Even the JUN map has only a very small very simple expansion.


7C00 7CFF Knock Timing Map

One of the steps your ecu uses to try to save your engine from permanent damage from detonation is to use a separate Timing Map in certain situations where knock is present. How I understand it is, once the ecu detects knock, it will retard the overall timing by a few degrees. If detonation continues and occurs in the Knock Map area of the Timing Map, then the ecu will switch from the normal Timing and Fuel Maps to the Knock Timing and Fuel Maps. The ecu will use the Knock Maps until the car is shut off and restarted. If the knock sensor still continues to sense detonation then the ecu will resort to safety boost. Being that the Knock Maps are very similar to the regular maps and actually identical in a lot of areas, they dont seem to add very much safety IMHO. Also many Zers with highly modded cars and / or boost controllers remove the safety boost solenoids so that safety feature is completely non-existent on a lot of Zs. On top of this, many tuners such as JWT use the same maps for both the knock maps and the regular maps. This is fine for cars that are in peak running condition and can even be an advantage if there is a problem with the knock sensor itself. For me however, I prefer to set the Knock Timing Map with extra retarded timing values. In this way if the car has a problem and goes to the Knock Map you will REALLY know it. The car will still be drivable but at a huge power loss. This is just my way of adding an extra level of protection and I have included it in the 300Z.bin code.


7D00 7DFF Primary Fuel Map

Print out the Stock Z32 Fuel file. This is your fuel map.

Like the Timing Map, the Fuel Map is accessed by the ecu in a similar way engine load x rpms. One of the first misconceptions about the Fuel Map is that it completely controls the fuel which is kinda somewhat sorta wrong. The real purpose of the fuel map is to accurately set the AFR. I already mentioned that, the K value is used to set the proper pulsewidth for 14.7 AFR at any load and any rpm, remember? The pulsewidth values aka TP aka Theoretical Pulsewidth (although not the actual pulsewidth) are displayed across the top of the Stock Z32 Fuel Map. When a given TP is reached and cross referenced by an rpm there is an enrichment value in the Fuel Map that will add a percentage of fuel on top of the 14.7.

For example, looking at the Stock Z32 Fuel map, you will see at the farthest right hand column the TP load of 58hex. Now scroll down to the rpm row of 6400 (which btw is the rpm limit of the stock ecu). This cross referenced value is 3Chex which for all you new guys makes absolutely no sense. Well there is a mathematical formula for converting this value into a real world AFR!! Fortunately for you, I have already made a chart with all these conversions completed. Print out the file AFR Conversion Chart. On this chart you can see that 3Chex is approximately equal to a 10.1 to 1 AFR. You can also see at the leanest the Fuel Map provides for an AFR of around 15 to 1.


7B10 7B1F TP Scale Timing

TP is Theoretical Pulsewidth, and the Maps also have a scale based on calculated TP to determine access points for the Maps 16 columns. As the engine sucks in air it registers on the MAF, the MAF emails a 0-5.1v signal back to the ecu, the ecu matches the voltage up on the VQ Table, pulls a number from its anus, and then after a mathematical formula and a smoke break, calculates the TP. A higher TP obviously means a higher engine load and the increased need for fuel. We know that at about 13psi the TP is at the furthest right hand column. Well what happens after 13psi? The ecu will continue to calculate higher TPs, and the last column in the Timing Map is used for timing values for all the TPs above the final TP (7B1F).

7AF0 7AFF TP Scale Fuel

The Fuel Map is also based on TP so see the above for details. Well what happens after 13psi? The ecu will continue to calculate higher TPs, and the last column in the Fuel Map is used for all enrichment AFR figures at the final TP (7AFF) and beyond. So at 13psi and 45psi at the same rpm, they will both get the same AFR as long as the injectors can provide enough fuel.

Here is why map expansion is of such value. The given AFR and Timing for 13psi may not be ideal for 45psi, and a proper AFR and Timing for 45psi may not be good for 13psi. For this reason an expanded map is a tremendous value especially to heavily modded Zs which can suck in over twice as much air as stock, move more air at lower boost levels, and make three times the stock hp. By altering the TP Scales you are altering the Maps load parameters and expanding what the map is able to see and calculate. The sky is the limit.

7B30 7B4F Water Warm Up

This scale corresponds to the temperature readings from the temp sensor on the coolant return pipe right at the front of your engine. When an engine is cold it needs a little more fuel to keep the engine turning and to heat it up faster. This table properly adds fuel according to the coolant temp. The colder the coolant the more fuel is added.

I dont recommend playing with this very much as it could really affect how well your car starts up.  However, if you have a larger radiator, larger oil cooler, and cooler thermostat which lower the normal operating temp of the engine, lowering the last few values will keep you ecu from adding fuel you dont need.

7A70 7AEF VQ Table

When in coming air passes by the MAF sensor it sends a voltage signal back to the ecu. That voltage then gets a value assigned to it by the VQ Table. The table itself is read as word data, that is two bytes or values combined to read as one four digit value. For example, the value for 7A70 is 00 and the value for 7A71 is 30 but in the case of the VQ Table this is read as 0030hex. So the first value is 0030 but how does this work exactly? The table is broken down into 64 word data blocks. Each block pertains to a specific voltage from 0.00v to 5.12v in 0.08v increasing increments. So the first block is 0.00v, the second is 0.08v, third 0.16v, fourth 0.24v.. on up to 5.12v. At 5.12v the MAF sensor is maxed out and the 7AEE-7AEF block is referenced. The value for that block is FFFF which is 65535dec. That value is multiplied with the K-Value in a mathematical formula to determine the TP which of course produces a 14.7 AFR before the Fuel Map gets involved.

The VQ Table fortunately does not need to be altered except in very rare cases. Even with a dual MAF or dual intake with 1 dummy MAF, the VQ Table needs no altering.

Ever wonder how an AFC (Air Fuel Controller) works??? They splice into the return signal from the MAF Sensor and increase or decrease the voltage before it is read by the ecu and referenced on the VQ Table. The early simple controllers would add or subtract up to 10% of the fuel curve but this affected the entire curve. If you needed more fuel on the top end, you had to live with excessive fuel on the low end. The newer AFCs can also read rpms and other sensors and by using this info they can be more specific as to the area they condition. However, when everything is said and done, they are only increasing or decreasing the voltage on the return signal from the MAF sensor. They are all completely and ridiculously obsolete if you can tune your own ecu.
7960 796F Air Flow Limiter

This is the Air Flow Limiter aka the Boost Cut J and is involved with the VQ Table. It is one the simplest and most valuable areas to adjust in the ecu. Lets first take a look at the values in 7960-7961 which are 80 and 80. These values are also read as word data so they are seen a one four digit value, 8080hex. When enough air passes by the MAF sensor - to send a 4.08v signal - which references the 52nd block in the VQ Table - which value is 8219hex the air flow limit is exceeded. The ecu will now take steps to prevent the engine from sucking in any more air. That stops our car from accelerating which trips our fun limiter causing us to cuss and possibly our wallets to bleed money profusely.

One of the problems with add-on AFCs and boost controllers is that somewhere along the yellow brick road to making hp you will hit the boost cut and no piggy back system can cure this. This IMHO is the biggest reason for having the ecu tuned.

Here is the fix - By setting all the values to FFFF the problem is solved and the Boost Cut has left the building, thankyouverymuch.

The 300Z.bin code already has this removed J

79E3 79EF Knock Limit

I am not exactly sure how this works. No one else modifies this so it is not a big deal.

79F6 - VTC Release

This is the Valve Timing Control Release. One of the nice features of our engine is the VTC which advances the timing on the intake cam. One of the down sides to stand alone ecus is that this great feature is lost. Only a hand full of stand alone ecus have the ability to use the VTC, one of which is the $2500+ Electromotive Tec 3.

The stock value for 79F6 is 76hex. 76hex is 118dec, times 50, equals 5900rpms. This is the point where the ecu ends the advancement of the intake cam and the valve overlap. The advanced tuning of this one little value is almost an art. The very high end tuners are very secretive about what value they use here, and what I know about it, I promised not to talk about. I suppose there are a few cam experts floating around that may be able to take this info and run with it.

On the 300Z.bin code I lowered the VTC Release to 62hex which equals 4900rpms. 

7B60 7B7F Ignition Dwell Duty

This deals with the spark of the spark plug. By increasing their values, you can increase the spark but at the cost of a shortened life of the coil packs. I promised not to discuss the exact details of altering their values but I would highly recommend using a HKS TwinPower or the MSD ThingAmaJiggy in conjunction with this.

Tunable areas that I dont know yet

Even with all these parameters that I discussed above there are many more that I am not familiar with yet. In fact there are many many more access points that I can see but I dont know what they do.

One table of interest is the Throttle Enrichment Table. When you stab the gas pedal the TB (throttle body) opens and a rush of air enters the engine. At this point the engine needs an immediate boost in fuel and can not wait for the MAF sensor. So depending upon the angle of the TB an extra amount of fuel is added. From what I have heard the stock Throttle Enrichment Table is very good and it should only be altered on highly modified cars that have been dynod and need specific AFR adjustment. Also the TTP Max helps to keep the Throttle Enrichment from dumping too much fuel at lower rpms. When I find out how to adjust the Throttle Enrichment I will amend this write up to include it.

All of the major tuning points have already been discussed, and in fact some of the points above were never adjusted on ecus in the US at all. A lot of the other tunable areas involve how the ecu reads the engines sensors and electric motors i.e. knock, temp, VTC, EGR, AIV, etc. Hopefully one day we will have all the details on everything tunable within the ecu.

Chapter 33 and 1/3rd: Advanced Tuning Techniques

With the previously explained Tuning For Dummies, you have enough info to accurately adjust timing, accurately adjust fuel, remove the limiters, and make a super slamming program for your Z. Next I will explain some techniques for the heavy hitters.

The Capabilities of Your ECU

So many years ago when I was still new to the 300Z, I picked up a magazine that had a feature on the SGP car. I believe it was recently after the car ran its 10.4sec QM. This was back in a time where 10sec QM passes of incredible rarity. I thought to myself, Wow, they did this with a Nissan ECU and a stock Nissan ignition system and coil packs. I just didnt believe it was possible. To make things worse, I really didnt know much about the Z or cars in general at that. Some time later my Z blew its engine and long story short, my wallet tied me up and went on a spending spree. I was now looking at what it would take to fully build a Z and of course the engine management is a huge concern on a heavily modded car. I asked myself numerous times, Will the stock ECU be sufficient? and Would a standalone be more beneficial? I can tell you now, when all factors are considered for a street driven car, in my opinion, the stock ecu is the best engine management for the Z.

Of course opinions are like dingleberries, everybody has them and they all stink. It would be convenient if I could back up my berries with some facts. A local shop here on Okinawa is particularly skilled with tuning stock ecus of all the Japanese cars. They are regarded as one of the top 5 ecu tuning shops in Japan. Their shop car is a fully licensed and plated 1000rwhp R33 Skyline GTR. It has run numerous 9.3 sec QMs on Nitto 555Rs, without nitrous. It uses a tuned stock ecu, HKS Twin Power, modified Z32 MAF sensor, and runs six 1000cc main injectors. It is periodically driven and raced on the street. [This is one sick car to see run on the street btw] >

This kind of power with the stock ecu is impressive and if proof enough for me that it will perform well on my car. The other features of the ecu like sensor diagnostics, the ability to run your entire dash display, A/C, cruise, etc, and the 16x16 resolution resolution of the mapping (which is better than most standalones) make it a great engine management system if not the best for our cars.

That shop has also done many MAF to MAP sensor conversions on Nissans, they built a dual MAF and MAP system that ran from the MAF under vacuum and switched to MAP for boost readings, they also tuned a turbod Nissan Primera (aka Sentra) to run from the readings from the TB sensor and removed the air flow sensor completely.

My Z will most likely use a MAP sensor because I plan on running sub-injectors and water injection. I would prefer the MAF sensor for its accuracy and reliability but unfortunately it would get sprayed on by the injection systems.

With some experimentation and research, just about any engine / turbo / cam / IC / injector / configuration can be accurately managed by a tuned ecu.

Adjusting for Larger Injectors

So Nissan screwed us good on the injectors. The Skyline GTR was released with larger turbos and larger 440cc injectors and it was only a 2.6L engine. The Supra comes with much better turbos, more boost, and 550cc injectors stock. So how bad is our situation? After adding the full exhaust, intake, and increased boost the Z can max out its injectors. In fact at 7400rpms and ~15psi, the injectors are at 100% duty cycle. Some injector shops dont recommend running injectors over an 80% duty cycle! Therefore larger injectors are very important to us.

I considered putting this into the earlier chapters because it is quite an easy adjustment but I needed to have some volume for the Advanced Tuning Techniques so here it is. To adjust for larger injectors you first have to grasp the concept. In the stock configuration, when X amount of air enters the engine, it is met by X amount of injector pulsewidth for 370cc injectors. So lets say for example purposes that you double the size of the injector i.e. 740ccs. That means at the same pulsewidths, the 740cc injectors will dump twice as much fuel as the stock 370ccs. In the Z this would mean 2 times the *proper amount* of fuel needed. [This is the reason why one can not just throw in 555cc injectors and expect the car to run properly.] So if we double the size of the injectors then we must cut the pulsewidth in half.and that is it! Stupid simple right? I did leave a few details out but the concept was the hard part. Lets get into a more detailed example:

Lets say we are putting in 555cc injectors which are the most common injector upgrade for the Z. Our stock K Value aka Injector Value at address 7F2B-7F2C is 0120hex and this of course is read as word data. We need to convert it to decimal for multiplication purposes. 0120hex is 288dec. So the K Value of 288dec provides the appropriate TP for 370cc injectors. Take this example as a base: 370cc x 288 K Value = 106560. Now change the injector size to find out the K Value: 555cc x X K Value = 106560. In this case X will come out to 192dec or C0hex and that is our new K Value for 555cc injectors. [Likewise 740cc injectors: 740cc x X K Value = 106560, X= 144dec or 90hex. 850cc x X K Value = 106560, X= 125dec or 7Dhex] Another way to figure the K Value is to divide 370cc by the size of the larger injectors (370 / 555 = .6666), and multiply the K Value by this amount (288dec x .6666 = 192dec or C0hex.)

Because the 300Z.bin code already has the limiters removed and some other convenient tuning done to it, I recommend using it as a base code and building upon it. In this case we would change the 7F2B-7F2C to 00 C0.

Now that we have the pulsewidth properly shortened, the equated TP will likewise be shortened as well. This would affect how the Fuel and Timing map are accessed. To correct this we need to shorten the values for the TP Scales for Fuel and Timing. To do this we take all the values in the TP Scale Fuel 7AF0-7AFF and the values in the TP Scale Timing 7B10-7B1F and multiply them by .6666. That sets the TP Scales so that the maps are properly accessed.

Next we need to adjust the injector latency, 7F88. The injector latency is a certain constant of injector pulsewidth added to the calculated pulsewidth to compensate for the time delay in opening and closing of the injectors. Larger injectors open and close at a slower rate so this constant needs to be increased appropriately. Its biggest affect is on the idle, too high and the car will idle rich or not run at all; too lean and the idle will be lean or not run at all. The stock value is 4Bhex or 75dec. So playing with this formula 75dec / 370cc = X / 555cc, X equates to 112dec or 70hex. This formula for adjusting injector latency seems to give a bit too much fuel. Through some experimentation I have found that taking the equated value (112), subtracting it by the stock value (112 75 = 37), dividing that value in half (37 / 2 = 18.5), adding that value to the stock value (18.5 + 75 =  93), usually gives a more accurate Latency value. In this case it would be 93dec or 5Dhex. I used this equation for my SR20DET 180sx which is running 850cc main injectors, stock is 370cc. My idle is smooth at the stock 850rpms, and the car is getting very nearly stock gas mileage.

Next we need to adjust the TTP Min. Since this table controls the minimum pulsewidths, and we dont need as long of pulsewidths as we did with 370cc injectors, just multiply all the values by .6666. You can also experiment with going leaner in some areas.

The TTP Max, 7E90-7E9F, also needs a little adjustment. The low end rpms need to be trimmed down a bit but the high end can stay the way it is. Multiply the first two values (22, 3F) by .6666, and the second two (4F, 6F) by a somewhat larger faction like .85. This will trim the low end and prevent over fueling. Since the goal with larger injectors is to make more power, the rest of the values can stay the same.

Feel free to play around with trimming the low end to get the desired idle and low end enrichment.

Also with larger injectors, you can increase the rev limiter. How much you raise it is up to you but be careful.

Adjusting for Dual Air Intakes

Along the line of upgrading the Z is the dual intake / dual pop modification. IMHO dual MAF sensors are going to provide the most accurate metering of incoming air. A real MAF with a dummy MAF set up like the JWT is not far behind and with a little tweaking of the code, you can smooth out any inconsistencies.

Before you decide to go to the dual MAF / dual pop set up, you really should get larger injectors first. It is technically possible to run twin intakes with stock injectors but that will just max out the stock injectors even faster.

Adjusting for dual intakes is really easy. By doubling the metered intake volume of air, your MAFs are only going to be sensing half of the incoming air. So for X amount of incoming air, the MAFs will only sense 1/2X causing the calculated TP will be of what it should be. So now we need to double the TP and the way we do that is to double the K Value. Since you also added larger injectors, make sure that you made all the adjustments for them before doubling the K Value.

With a real MAF / dummy MAF setup you may find the need for a few small adjustments for fuel. You can use the TTP Min to raise the baseline fuel if you are running too lean at idle. You can also add or subtract a small percentage of fuel through the entire curve by adding or subtracting ~5% to the K Value. 

Expanding the Maps

Here is where all of this comes together. To best visualize this section I recommend printing out the files in the Blank Z32 folder and the files in the Stock Z32 folder. We will be looking at the stock Z maps and will be applying them to the blank maps.  

The first and easiest expansion will be done to the Rpm Scales. The highest rpm access point is 6400rpm. We know this because the value at 7B2F and 7B0F is 80hex. 80hex is 128dec x the conversion factor of 50, equals 6400rpms. The best expansion that I have found for the rpm scaling is 8800 rpms. So take 8800, divide it by 50 to get the value 176dec which is B0hex. So the new highest value in the Rpm scales is B0. One of the nice things about 176 is that it is divisible by 16. So after you get all 16 values, convert them to hex and the rpm scaling will look like this:
Isnt that great? We just expanded the mapping from 6400rpms to 8800rpms. That should be enough for just about any Z.

Next to expand the TP Scaling. We know that at around 13psi the stock map is at its limits and the highest TP value is 58hex for the Fuel Maps and 60hex for the Timing Maps. So a little expansion for a stock injector car (which can go to about 20psi at the max with race gas etc) would be good but why not expand the maps one time and be done with it??? Doubling the size of the stock maps should be sufficient for just about anyone. That should cover us up to 26psi right? Well not quite since a car with a larger bore, larger turbos, larger ICs, cams, porting, etc can suck in as much air as a stock car but at a much lower psi.  In any event doubling the size of the stock maps should be good for 600rwhp or so. Even if you can exceed those limits the final values on the map will most likely be good for your hp level. If you need more then just expand the maps more.

So we have 58hex and 60hex to work with. Being that the maps are on two slightly different scales, lets make them equal and a bit more linear. Taking 60hex and changing it to decimal gives us 96. By doubling 96dec to 192dec we double the limit of the maps. Next to fill in the all the values in between.. 192 also happens to be divisible by 16 J. So the new scaling in dec is 12,24,36,48,.up to 192 and that then needs to be converted to hex. So you new scaling would look like this:
Now all of this is fine and dandy and it sure looks cool with all the pretty colors but it does us no good if the Timing and Fuel enrichment values are screwed up.  So to start off with we will use the values from the stock mapping for as high as their limits can be used. Just for reference we will highlight the limits of the stock mapping:
As you can see everything within the light blue area is the limits of the stock Fuel Mapping. The TP limits of the stock Timing Map would extend just a tad further because its TP limit ends at 60hex. Also it is pretty clear that doubling the TP and extending the rpm scale has made a huge difference in the Maps sizing.

One of the nice things about printing out these blank Maps is that you can take them to work with you and fill in the values *instead of doing actual work*. While you have the stock Fuel Map and the Blank Fuel Map printed out and sitting next to each other, we have to reference the stock Fuel Map to find the initial values for the Blank Fuel Map.

The first value on the Stock Map is C0 and I feel that is what should be used for the first value on all the expanded maps. Likewise on the extended Timing Maps you should use 0F which is 15 degrees for the first value. Next we will reference 16hex on the rpm scale  x C on the TP scale. Since this does not fall on an exact point on the Map we need to make an educated guess. Look at the values around this point and use the average of them, in this case BE would be good. Following this pattern, fill in the rest of the points within the stock parameters. Here is a partially completed example:
Once you have all the stock parameters filled in, next comes the hard part. You have to make an educated guess for the values in the extended parameters. I could have completed this chart for you but that would take away all the fun.

When you have finished the Fuel Mapping, perform this same procedure on the extended Timing Map. Have fun! Once the new Fuel and Timing maps are completed then you can do the adjustments for larger injectors and dual intakes.

Special Tuning of the Fuel and Timing Maps

It is hard to find a point to start with here because it is a huge subject. When a person comes into learning how to tune, setting the Scales, adjusting the K Value, and removing the limiters is of utmost importance. Heck, you never even have to touch the Fuel and Timing Maps and you can run huge injectors, dual intakes, and make a boat load of power. In reality, this has been the basic EPROM tune in the US and the large majority of Japan until now. Now you have Map Expansion to consider and along with that comes AFR and Timing tuning philosophy. It is much like an iceberg in that at first it appears small but after some study you realize that this topic is massive. So what are the best AFR and Timing adjustments??? The best advice I can give you is *RESEARCH* and lots of it. Look all over the net, read as much as you can, think, theorize, experiment. Nissan is very conservative. Our ecu programs were made in the late 80s. What AFR makes the most power? How much timing is appropriate for XXpsi of boost? This iceberg is huge!

I have had the great fortune to have conversed about this with one of the most skilled tuners in all of Japan, and I have promised not to reveal any of his secrets. I can tell you that once everything else is set properly, there is a massive amount of power to be made in proper AFRs and tweaked Timing.


Finding the TP

Once you have reached the point that you can half-way understand everything up until now, you are ready for some deeper mathematical stuff to help you understand how the ecu comes up with these numbers.

First is the equation for TP:  (VQ x K Value / CAS Value) / Number of Cylinders

VQ is the value taken from the VQ Table. CAS is the rpm / 50 x 256.

Here is an example:

On stock injectors at a light throttle and 2500rpms, the MAF is sending back a  2.56v signal (example only). That voltage falls on the 32nd block of the VQ Table. That value is 1B39hex or 6969dec. So our equation will look like this:

[ 6969 x 288 / (2500rpms x 50 / 256) / 6 cylinders = TP ]

So  2007072    /    12800   =   156.8     - and since this is the total amount of fuel needed for the whole engine, we divide it by the number of cylinders (156.8 / 6cyl). That gives us our TP Value of 26dec (or 1Ahex) . How significant is this??? If we know the MAF voltage and the rpm we can calculate the TP and find the exact points being accessed on our Timing and Fuel Maps! So lining up the TP value of 26dec (1Ahex) and the rpm of 2500 we can find the corresponding block (or block of 4 points if it does not fall exactly on 1 point) on the maps under those engine conditions. With a data logger like a Conzult we can quickly find and adjust or fix points on the maps. Even without data logging we can still find points using a good voltage tester and remembering rpms.    

Finding the Pulsewidth in MS (milliseconds)

In the example above you can see that a TP of 26dec or 1Ahex at 2500rpms falls on a lean AFR (~BC) closed loop area of the Fuel Map. With such a short pulsewidth it is best just to let the ecu take care of it..which makes it sorta uninteresting for this lesson.

Lets say that at 7000rpms you are sucking in enough air to hit the last value (58hex) in the TP Scale Fuel. 58hex is 88dec and this TP value when multiplied with by 0.125 will equal the pulsewidth in ms. 88 x 0.125 = 11ms.

So now we know that 11ms at this engine load and 7000rpms, the engine will have the proper amount of fuel for a 14.7 AFR. Of course a 14.7 AFR at this load would be muy baddo for your engine so the next step is to reference the Fuel Map. Since the stock RPM Scale Fuel is limited to 6400rpms we know that we are on the bottom row. A TP Scale Fuel value of 58 hex is the final column so now we know that we are accessing the final lower right hand value which is 3Chex. 3C is roughly 10.1 to AFR but it is also a percentage of enrichment. Here is how you calculate it:

3C is 60dec and based on a scale of 128, 60 is an enrichment value of 47%. (60 / 128 = .46875)

So we increase the 14.7 AFR value of 11ms by 47%. (11ms x 1.47 = 16.17ms) So the total equated pulsewidth required to make 10.1 to 1 here is 16.17ms.

Finding the Injectors Duty Cycle

Continuing on the example above we have a 16.17ms pulsewidth at 7000rpms. What does this equate to in a percentage of duty cycle? Our duty cycle is the injector pulsewidth divided by the maximum injector opening time per revolution. So lets figure what the maximum open time at 7000rpms.

Since we have a 4 stroke engine, two up and two down, one of the down strokes is for combustion and the other is for the intake of air and fuel. So at 7000rpms only half or 3500rpms can be used for the injection of fuel.

7000rpms / 2 = 3500rpms

3500 rev per minute / 60sec = 58.333 revolutions per every 1 second

58.333 rev / 1 sec  (now flip it) = 1 sec / 58.333rev = .01714sec /revolution

.01714sec x 1000ms =  17.14ms and this is 100% duty cycle.

The actual pulsewidth of 16.17ms divided by 100% duty cycle of 17.14 will give us the actual duty cycle:

16.17 / 17.14 = .9434   or   94.34% duty cycle.

Considering that some injector shops dont recommend going over 80% duty cycle, you can see that our stock injectors are already at their limits. In this example we used 7000rpms to calculate the duty cycle, at higher rpms the maximum open time for the injector is even less so it quickly reaches 100% duty cycle. We also have to consider other enrichments like cold start, throttle position, etc that may add a bit more pulsewidth pushing our injectors even further. This is why larger injectors are so valuable to our cars.

In Closing

I am far from perfect and I still have a lot to learn about tuning. I know there are others out there who know more than I do. If you find any fault in my explanation of tuning, please tell me and especially everyone else.

As a community, we are already sitting on a wealth of information. If you have a tuned ecu, .bin files, or have made some good programs yourself with the info I provided, please share them with the rest of the community. The more info that you have to study, the faster you will become proficient in tuning, the better your tunes will be, the more power you will make.

Please do not forget to give credit to those that helped you get to where you are. If you were helped, then help others.


Revision 1

What can I say? The Tuning the 300Z ECU write up was an incredible success. The praise and information that I have received has been incredible. So after mulling over the new info and constructive criticism, you are now receiving the next installment, Revision 1. Think of it as Windows 3.1 with some patches and some upgrades. At first I contemplated correcting the write up directly but that would only cover up my errors. Incorporating revisions allows for you to see both my mistakes and the corrections for them. I believe it is beneficial to have both to look at and study. This also, hopefully, keeps the information and skill progression simple enough for even the beginners to digest.

Ash Powers (AshZ on pointed out that my Water Temp Enrichment Table (7B30-7B4F) was actually the Temp Conversion Table. This table converts Celsius to Fahrenheit so it is best that you dont touch it. Big thanks to Ash for pointing that out. When I get the info on the Water Enrichment Table I will make sure to include that in another revision. If any of you know where it is and how to tune it please let me know. I havent spoken with anyone yet that seems to know about this but I am sure that someone out there does.

Btw, the two big things I am searching for right now are the Throttle Enrichment Table, and the Water Temp Enrichment Table. There are a few out there that know about the Throttle Enrichment so it shouldnt be too long before this at least is revealed. Any new info will be included on future revisions.

I would like to especially thank Niclas (ProZ on for his very welcome critique and comments on my write up. Here is a summary of the suggestions he sent me: 

1) On the AF Limiter (7960 796F) Niclas does not recommend removing it completely (setting all the values to FF FF). Rather, setting all the values to *double* the stock values should be enough for roughly 2 bar or 29psi. If your car blows a hose to the actuator, having the AF Limiter adjusted in this manner could potentially save your engine. On all of the upgraded ecus that I have seen, however, this limiter has been removed (set to FF FF) including the JWT, and JUN. You can take your choice of doubling the values or cutting the limiter all together. Niclas is well above my skill level and maybe he will explain this in more depth later. In any event, JWT just eliminates it and that is what we are used to in the US. Anyone else have any more input on this?

 2) In the write up, the formula that I used for calculating the TP is Niclass old formula. He has told me that there is an error in that formula. I have played with that formula and the results seem pretty darn close though. Nice formula even if it is broken. If anyone wants to share the corrected formula, I and the rest of the Z community are all ears.

3) Niclas also pointed out that my theory of doubling the final value of the TP Scale Fuel and Timing to account for double the boost is incorrect. It would actually cover 3x as much boost or roughly 3bar / 44psi. Makes sense too at the time of the write up, I hadnt considered the TP values for vacuum, but rather boost only. Figure that the lower half of the stock TP Scale is still under vacuum and only the top half is boost. Therefore doubling the final value will include all the values for vacuum as well as boost. Understand?? LOL Lets make a simple example. Say that the top row below is the vacuum / boost on the manifold and the bottom row will be an example TP Scale:

-10,   -8,   -6,   -4,   -2,   0,   +2,   +4,   +6,   +8,   +10   < psi Vacuum / Boost

  1,     2,     3,    4,    5,    6,     7,     8,      9,   10,     11   < TP Scale

You can see that in this example if we want to calculate for double the boost (ie 20psi) we only need to increase the TP Scale by 50%. Figure that our stock TP is good for about 14psi so extending it by 50% will be enough for about 28psi that will be more than enough for most Zs out there. A few out there may need a little more expansion and a very well built Z will be able to move more air at less psi. A huge map will mean that you are not going to access the whole thing which means lower resolution. For those of you out there who have already made up some nice expanded Timing and Fuel Maps, dont worry.just redo them LOL, Sorry. It is the same basic idea as in the write up since we were figuring for double the stock boost anyways.

4) This one is really petty [ = P thanks Niclas]. I made a verbal error on the formula for calculating the Injector Duty Cycle percentage. The formula is correct and works properly but my statement:

at 7000rpms only half or *3500rpms* can be used for the injection of fuel - is in correct and it should say 3500 times per minute. Crystal Clear??? j/k. You have to think of engine mechanics to fully understand this:

In a 4 stroke engine, the Five-Event-Cycle-Principle is: 1) Intake. The intake valve is open, and air and fuel enter the cylinder while the piston is moving down. 2) Compression. The valves shut and the piston moves up compressing the air and gas. 3) Ignition. The spark plug ignites the mixture. 4) Power. The ignited mixture expands forcing the piston down. This is the only stroke that puts power to the crankshaft. 5) Exhaust. The exhaust valve opens allowing the burnt exhaust gasses to exit as the piston returns upwards.    

So the injectors can inject fuel for the full duration of each 4 stroke cycle but the intake valve only opens time for every two rpms. That means at 7000rpms the injectors will inject fuel *3500 times per minute*. The good news is that the results from the formula in the write up are correct, only the wording was wrong J Just remember *times per minute* vice *rpms*.

5) Next is the AIV delete code from the 93 Z eprom. The 1993 Zs were not released with AIVs but the 90-92Zs were. Niclas recommends using this code as it allows the user to remove his AIV valves. Thanks to some very generous anonymous readers I now have this code as well as a slew of others that I will release shortly. Using the 93 code as a base I have already made a 310Z.bin base code as an upgrade for the 300Z.bin code. I have also thrown in some light tuning to give a bump in power over the 300Z.bin code! Also using the 93 base code I am making some 555, 740, and 850cc injector codes for free download.

Btw, I am still searching for a stock 1993 N/A code. If anyone out there has one please email it to me. This is about the only code that I do not have and it would be a great asset to the Z community.

Next up is some tuning equipment:  has an eprom programmer for $150. I have seen this same programmer sold at other web sites as well. Xtronics also has a $100 adapter for using the programmer as an emulator. Check out the programmer and emulator adapter at:  This about the cheapest way to get both a programmer and emulator.

I have been looking at the Flexroms Unirom. This has a heck of a lot of features including a realtime trace and pricing around $600 J Check out this web page for more info: If anyone has used this PLEASE let me know. I am about to pull the trigger on this one.

Another interesting web page is  To view this page in English scroll down and click on the English link. This company sells lots of tuning products in Japan. Apparently they have an emulator with realtime trace for around $800.

Another very interesting web page is:  This is the Orgler Electronics web site from Italy. I bought his old model emulator which was pretty nice and relatively easy to use. He now has a few newer versions and a realtime trace option. I dont know the pricing on it though but it shouldnt be too bad. He also sells an emulator that is similar to the Xtronics Romulator. It is called the ByteRunner and it is about $150. You can check out the details on his web site.

I am searching for input, reviews, or any info in general on emulators for the 300Z. If you are using an emulator please contact me and let me know the details on it. I would especially like to find one with realtime trace for the lowest price possible.

Last, in the write up I forgot to mention all those that have helped me. As you can see, tuning the ecu is not something that one can just figure out. Even if one has all the best tuning equipment, they still need a teacher to explain the details of the ecu code.

Niclas (ProZ), more than anyone else, has generously given me loads of great tuning info. I quoted him quite frequently so the majority of the praise for the write up can be directly attributed to him. I think we will see many informative pieces come from him in the future. The whole Z community thanks you!!!

Technosports is a local speed shop here in Japan. They have helped me very much in my ecu studies. Fortunately, in Japan the 300Z is considered a dead car, meaning that virtually no one is still modifying them. This means that teaching me about the Z ecu really doesnt affect their business. If the Z was still popular then I doubt they would have helped me as much. I truly appreciate their helping me and my obsession with a dead car this is very similar to a drug dealer / crackhead relationship.

To all the readers that have participated and contributed in the sharing of information since the posting of the write up, I and the Z community are in your debt. Your graciousness has laid the foundation for the rest of us to build upon. From all the people, from all around the world, that sent in your stock ecu .bin files (most want to remain anonymous so I will not post any names), you have helped the Z community more than you will ever know. Now that these valuable .bin files are free to download and modify, they will provide the power for 300Zs all around the world.

We are one of the last communities to start sharing our tuning information openly and freely. The Mitsu, Honda, GM, Toyota, Mazda, and others are way ahead of us in this aspect and they have benefited greatly from it. Now it has come, it is our turn. hail the Z !

Stay tuned for more revisions as more tuning information is received. If you have anything to contribute please email me or feel free to post it on one of the Tuning Forums.              

Enter supporting content here