Forum banner
1 - 20 of 243 Posts

· Premium Member
36,344 Posts
Disclaimer #1: Tuning programmable ECUs is extremely difficult and highly advanced. You should not even attempt to do this unless you have a solid understanding of how a fuel injection system works, the effect of ignition timing, etc.

Disclaimer #2: A Power FC is not a bolt-on power adder. It's not like adding an intake, where you spend an hour installing it, go to the dyno and gain ten who. With a Power FC, you're likely to lose power or, way worse, blow your engine if you have a poor map in the car. The Power FC has no safety feedback features like the stock ECU. It does what you tell it to do, even if that causes damage to the engine.

Disclaimer #3: I do not provide "base maps" or personalized "tune my car over the internet" sessions. Please don't ask me. I have put a great deal of time and effort into making this sticky as easy to understand as possible, but I intend for people to take the ball and run with it after they're done reading it. If you have a specific question about something I've said here and need clarification, please post it in this thread rather than sending me a PM. "Help, my car is knocking" is not a specific question. I'm more than happy to give guidance, but I have to leave the work up to you.

The scope of this sticky is to explain how to install a Power FC and tune it for maximum power. It is here to show you how to become proficient with the FC Edit software included with the FC Datalogit. Advanced tuning topics will be covered by other stickies. To take advantage of the material in this thread, you will need the following three pieces of equipment:

A'PEXi Power FC
FC Datalogit (includes FC Edit software)
wideband oxygen sensor
laptop computer

The subject of wideband oxygen sensors has been covered in this sticky:

Everything you need to know about wideband O2 sensors

Also, the Power FC is only compatible with 2000-02 cars. Drive By Wire (DBW) throttle was introduced in 2003 cars, and the Power FC is incompatible with this. You can convert a DBW Celica to a cable throttle, which has been successfully done. The methods described in the following thread are what was used. The thread relating to this can be found here:

How-to: DBW to cable throttle conversion

Another method for solving the DBW issue is running a PFC parallel to the stock ECU. That information can be found here:

Need a test subject for an 03+ DBW 2ZZ PowerFC install

Where do I purchase a Power FC and FC Datalogit?

Many places offer Power FC for a reasonable price. That topic is outside the scope of this sticky. The FC Datalogit, however, is much harder to come by. You might have months of the backorder, so plan and be patient. These can be purchased directly from FC Datalogit or for a lower price from Monkeywrench Racing. If the Datalogit is backordered at Monkeywrench, it is often faster to get it from FC Datalogit direct.

Should I get the serial or USB Datalogit?

The serial model is cheaper, but many newer laptops do not have a serial port. In this case, get the USB version. If you have a serial version and your laptop does not have a serial port, you can buy the Sewell USB adapter from their website:

Sewell InstaCOM USB to Serial Adapter

This is the adapter that comes with the USB version of the Datalogit. I have used it successfully, while other adapters like the Belkin have caused FC Edit to lock up during logging, and some, like those found on eBay, often don't even connect to the Datalogit.

How do I install the Power FC and FC Datalogit?

The Power FC is a direct replacement for the factory ECU. Take the cover off the ECU (the one that says to never remove it), unplug the harness plugs, and remove the two bolts holding it down (with a 10mm socket). For safety, you should always do this with the negative battery terminal disconnected. The ECU is held in further with two tabs on the side. To release these, stick a flat-head screwdriver down the side of the ECU and remove the tabs. The Power FC will slide right into the spot vacated by the ECU but does not have hold-down bills and is narrower than the factory ECU. Before installing the Power FC, notice the PS2 port on its side. This is where the Datalogit plugs in. With the Power FC installed, you will need to either keep the ECU cover off or drill a hole somewhere in the ECU box to run the Datalogit wire in. Most people drill a hole in the back of the ECU box and run the wire in there, but remember that the battery is right there, so make sure the wire and mortar don't interfere. If you wish to permanently install the Datalogit, you will need to find a way to run the wire from the passenger compartment to the engine bay. I ran mine through the grommet for the steering rack. My Datalogit is mounted above my feet, and the interface cord to the laptop runs into the glove box and is coiled up there. I need to open the glove box to access the cable when tuning.

Now that everything is hooked up, how do I use FC Edit?

1. The first step is to have the car at least in the on position, with or without the engine running. This powers up the Power FC. Start the program FC Edit, which will bring you to the opening screen.

You may get a COM port error when starting FC Edit, which means either you have the car off or the COM port is set wrong in FC Edit. Most serial ports will run on COM 1, but the USB will run something else. Go to Setup -> Port in FC Edit to select the correct COM port.

2. At this point, FC Edit will automatically open the default.dat file in the same folder as the executable file. Take a look at the Settings 1 tab. The default.dat file for the 2ZZ looks like this:

You can change the default file to whatever you wish, but the fact that the default file is so different from any normal map can be helpful.

3. At this point, you should initialize the Power FC. This function is accessed from the Tools menu at the top of the screen. Initializing the Power FC will erase any previous maps that may have been loaded but, more importantly, will erase any learning of idle settings. This is critical to properly get your car to idle once you're up and running. Let me restate that this will erase any maps loaded in the Power FC and revert to the default map. If you have a map in the Power FC that you intend to use, first save this map to your computer, then initialize the Power FC, then reload your map.

4. Still, from the Settings 1 tab, click Read All. This will read in all the current data on your Power FC. You will notice the values change on your Settings 1 screen. That is why it's nice to keep the default file as is: because you can visually see that the Read All function has been successful.

5. If your Power FC still has the default.dat file in it, or you wish to load a different map, do it at this point. You go to File -> Open and select your desired .dat file. If you send or receive Power FC maps through e-mail, it is always a good idea to zip the file first. The .dat files can become corrupted by e-mail systems and become unusable. Now that you have opened your desired map click Write All to write it to the Power FC. Once you've done that, cycle your key off and back on, and do File -> Default in FC Edit. Now do a Read All and see if the values in FC Edit change. This step double-checks that the write function was successful.

6. Now, you need to let your Power FC learn the idle of your car. There is a 30-minute learn-to-process the Power FC goes through for this. For the best sluggish results, allow this entire 30-minute process to complete. This process should be started with the car cold, although you should not do this on a freezing day so that the car can heat to operating temperature reasonably quickly. There are three phases in the 30-minute learning cycle:

  • For the first 10 minutes, let the car idle with only an average load. You can have the stereo running during this point, as that would be considered a moderate load on the engine.
  • For the second 10 minutes, add in the blower fan.
  • For the third 10 minutes, add in the air conditioning.

Now that everything is installed, FC Edit is running, and my map is loaded, what is all this other stuff?

FC Edit has ten tabs at the top of the screen and several menus. I will go through them one by one and explain what they do.

File Menu

There are five functions under the File menu: Default, Open, Save As, Compare and Exit.

  • Default is basically like Open, only that it opens the default.dat file automatically. This will not work unless you have the default.dat file in the same folder as FC Edit.
  • Open is used for opening saved maps.
  • Save As is used to save your map to a .dat file.
  • Compare is used to compare two maps. It works like a second Open and will open a second map over whatever current map you have open. Any differences between the two maps will be highlighted in yellow or red, depending on positive (red) or negative (yellow) differences. Mousing over a highlighted cell will show you the value in the first map you had open.
  • Exit is used for exiting FC Edit if you didn't know that, back away from your computer and take up another hobby.

Log Menu

There are three functions under the Log menu: Start, End and Save As. You will notice that all three show corresponding function key shortcuts. These are particularly useful for logging data while driving.

  • Start begins a data logging session.
  • End closes a data logging session.
  • Save As saves your log file. This is not the same as the Save As under the file menu.

Window Menu

There are eight functions under the Window menu: Monitor, Graph, Chart, Map Watch, Add Watch, Hide Watches, Load Watches and Save Watches.

  • Monitor opens up the Monitor window. From here, you can watch engine telemetry in real-time. You also use Monitor to set up the parameters that will be logged. You can also start, end and save data logging sessions from this window.
  • Graph will show three-dimensional graphs of all your maps.
  • Chart will show your logged data in horizontal chart form.
  • Map Watch will show your logged data on a 20x20 table. Logged values will appear in the cell where they were logged in.
  • Add Watch lets you put real-time parameters displays on the screen, like a digital gauge. This is particularly useful if you have a wideband without a gauge display, such as an Innovative LC-1.
  • Hide Watches removes the watch displays from the screen.
  • Load Watches allows you to load pre-selected watches. Otherwise, you would have to add each look individually every time you open FC Edit.
  • Save Watches saves your current watches, so you can quickly reload them in the future.

Tools Menu

There are two functions under the Tools menu: Initialize Power FC and ReCalc Base.

  • Initialize Power FC will reset the ECU. This will erase any loaded maps and learned idle settings.
  • ReCalc Base is used to write changes from the INJ map to the Base Map and then reset INJ to all 1.000. This can be useful while tuning to make percentage changes in fueling the map quickly and easily.

Setup Menu

Four functions are under the Setup menu: Port, Auxilary, Version and Maps.

  • Port is used to select which COM port your computer will use to communicate with the Datalogit.
  • Auxiliary is used to set up the auxiliary ports on the Datalogit, such as the wideband sensor.
  • Version selects between 1ZZ-FE and 2ZZ-GE.
  • Maps is used to select various functions that can be accessed in other ways from other windows.

· Premium Member
36,344 Posts
Discussion Starter · #2 · (Edited)
Base Map

The Base Map is the most important map and so I will explain it first. The Base Map looks like this:

The Base Map tab is one of four "map" screens. The numerical values across the top of the table represent rpm breakpoints and the values down the left side represent "load" breakpoints. "Load" is a value that represents load on the engine. It is calculated from several measurements, including airflow (from the mass airflow sensor) and throttle position. The way the Power FC actually calculates load is unknown, but in general, idle and cruise situations will have low load while full throttle will have high load.

The values in Base Map are injector on-times in milliseconds. The reason the tab is called Base Map is because these are the raw injection values before and corrections. Much of the rest of what FC Edit does is apply corrections to these values.


INJ stands for Injection. The screen looks like this:

The values in INJ are a percentage correction of the fuel injection. A value of 1.000 means 100%, which is no correction. Values above 1.000 will add fuel while values below 1.000 will take it away. Most common Power FC maps you will find on the internet will have this map set to all 1.000. Using the INJ map in this way will cause the O2 Sensor Feedback function to not work properly. That function will be explained later in this tutorial.

There is much debate amongst different tuners as to the "correct" use of the INJ map. Bear in mind that any method will ultimately work, as INJ and Base Map are always multiplied for final tuning. How you use the map is entirely up to personal taste. Many people like to call this map a "target AFR" map, meaning that you set the values to what your desired AFR would be as a ratio (14.7 / desired AFR). This in theory gives you the enrichment you need for things like full throttle. Once the target AFR is set, any subsequent fueling changes would be made on the Base Map and the INJ map would never be touched. It should be pointed out that this method will only work when using FC Edit and won't work with the Commander. On the Commander, you don't have access to the Base Map, so fueling changes are made on the INJ map. The writers of FC Edit added the ReCalc Base function, which writes changes made on the INJ map to the Base Map and then resets INJ to 1.000. The purpose of this is to do percentage based fuel adjustments. If you wanted to add 4% fuel to certain cells in your Base Map, you would type in 1.040 in the corresponding values in the the INJ map. The Power FC can only understand certain values, so FC Edit will round your 1.040 to the closest possible value. At this point, you could leave your corrections on the INJ map, or you could write the changes to your Base Map using ReCalc Base.

Back to the use of INJ as a target AFR table, there are a few problems with using it this way. First is that the target AFR is not always the same in a given cell. This occurs mainly at part throttle. You will find midrange load cells that you will pass through while cruising and accelerating slightly to maintain speed or change lanes. You will want your AFR to remain around stoichiometric (14.7) under these conditions. But you will also find that under part-throttle acceleration, you will pass through the same cells. Under an acceleration condition, you'll want a richer AFR. So essentially, there is no target AFR for certain cells.

The second issue with INJ as a target AFR table is that it is not the only form of possible enrichment. When using these other enrichment conditions, you will actually be doubling your enrichment. However, many people don't use alternate forms of enrichment so this doesn't come into play.

The alternative to using the INJ map as target AFR map is to use it for percentage-based fuel adjustments or leave it all at 1.000, as many common maps have it. As I've gained more experience tuning the Power FC, this is the method I prefer. There are a few reasons for this:

First, it makes it significantly easier to write maps from scratch for custom setups. You simply scale fueling linearly in the Base Map and then use INJ to make adjustments up and down from your ideal fueling. I have found that enrichment is based almost completely on throttle position and so I put my enrichment there, which allows me to leave my Base Map essentially flat. I'll get into that enrichment setting and the advantages of this later in the tutorial.

The second reason is the elimination of the mixed target AFR's at part-throttle. By using throttle position-based enrichment rather than a set target AFR on a table, you're able to get lean while cruising and rich while accelerating using the same cell. Again, this will be explained more fully later.

The final reason is that in practice, I do not use the O2 Feedback Control function, as I find it to work incredibly poorly. So messing up its functionality through "improper" use of the INJ map is not a concern for me.


IGN stands for Ignition. The screen looks like this:

The values on the Ignition map are degrees of ignition advance. This means how many degrees before the piston reaches Top Dead Center (TDC) on the compression stroke that the ignition system will fire the spark plug.


VVT stands for variable valve timing. The screen will look like this:

Both the 1ZZ and 2ZZ engines have a variable intake camshaft. This is the VVT-i system. The values in the map correspond to advancing or retarding the intake cam. There is no proof of what these values actually represent, but most people feel that 1 on the VVT map roughly equals or exactly equals one degree of movement of the camshaft. The common belief is that a range of 0-55 represents the maximum effective range of the system, with 0 being the most cam advance and 55 being the least. There is also evidence that 50 is the actual minimum cam advance setting. A Toyota technical document explaining fow the VVT-i system works and what settings generally work in different conditions can be found here:

Settings 1 Tab

Settings 1 is the first of five tabs of basic settings and correction factors. The screen looks like this:

Boost Control Box
-The FC Datalogit is able to function as a boost controller. This feature is most commonly used on RX-7's and is not used on the Celica. The feature is completely deactivated in the 1ZZ/2ZZ version of the firmware.

Function Select Box
-There are five functions that can be turned on and off in this box.
1. Boost cntrl kit - Boost Control function. Default is off, leave it off.
2. Inj/AirF Warn - Flashes a long pulse on the check engine light if you reach 100% duty cycle on the fuel injectors. Default is on, leave it on.
3. Knock Warning - Flashes a short pulse on the check engine light if knock goes above a pre-set threshold. Default is on, leave it on.
4. O2 F/B Control - Takes feedback from the oxygen sensor and attempts to compensate injection to achieve a 14.7:1 air fuel ratio. Default is on, turn off for tuning and on if you want post-tuning. This function is tricky and making it work is not simple. Many people, myself included, feel that it works so poorly that it is left off permanantly.
5. Idle-IG Cntrl - Controls ignition timing at idle to try and maintain target idle rpm. Advances timing when rpm is below target and retards it when above target. The default is on, leave it on.

**There is a bug with either the Power FC or FC Edit that makes O2 F/B Control very difficult to turn off and keep off. I've found the best way to work around this is change the default.dat map to have these off and re-save it. I'm not sure this has any effect but it at least eliminates possibilities. When I switch these functions off, I will hit Update, then cycle the key on and off. Then Read All and see if they come back on.

Rev / Idle Box
-There are seven parameters in this box:
1. Rev Limit - Rev limiter, where fuel cut occurs.
2. VTLI High - RPM where lift engages on acceleration.
3. VTLI Low - RPM that lift will hold to on deceleration (such as shifting gears).
4. F/C A/E - Fuel cut recovery rpm with air conditioning off. When you let off the throttle, the injectors will shut off. This is the rpm where they will turn back on.
5. F/C A/C - Fuel cut recovery rpm with air conditioning on.
6. Idle A/E - Idle rpm with air conditioning off.
7. Idle A/C - Idle rpm with air conditioning on.

Knock Warn Box
-Knock warn has two parameters: Thresh and Setting.

1. Thresh means threshold, and means the maximum knock value that will be tolerated before the check engine light will flash as a warning. It should be noted that 2000-01 cars have a different knock sensor than 2002 and later cars and will typically have higher knock values. The value of the threshold in the default 2ZZ map is 60, which is unrealistically high. The only way to properly set this value is to make a calibration curve for your knock sensor. That topic is covered in this thread:

One other thing to note is that very hard shifts (typically when racing) will cause very high spikes in knock sensor activity. Do not confuse this as real knock.

2. Setting - Flash time in milliseconds for the warning. No reason to change this.

O2 Feedback Box
-The setting here relates to the INJ map. Any cell with an INJ value below the setting value will be subject to O2 feedback/correction provided the function is turned on. Before I showed how most people use the INJ map, for fuel adjustments, and then ReCelc Base and set all the values back to 1.000. As you can see, this will make every cell in the map subject of O2 Feedback Control if the function is on and the default setting value is used. You need to pick the setting value so that you are only applying O2 feedback correction to cells very near stoichiometric. I use a value of 1.035, which corresponds to a commanded AFR of 14.2:1 (assuming 14.7:1 as base AFR value). This would work well when using the INJ map as a target AFR table. However, in practice this function works extremely poorly. It is very slow to respond and wildly overshoots stoichiometric. I find that at idle, the car will fluctuate between 12.5 and 16.5 AFR with this setting turned on. Unfortunately, the settings that control the response of this function are protected and hidden on the Power FC. On more advanced ECU's such as the AEM EMS, these functions are tunable. Since the function essentially doesn't work, I just leave it off permanently. With the function off, you no longer have a real consideration with how you use your INJ map.

Protect Box
-This box would be used by tuners to make certain settings inaccessible with a Power FC Commander. Since you are using FC Edit, obviously this doesn't apply. Just uncheck everything here.

Version Box
- This will show the Program String (2ZZ-GE in my case) and the Program Version. 99% of the time, this will be 2.71A for a 2ZZ engine, but I have come across a Power FC from and XS turbo kit that had vertion T2.71. If the v1.120 will not work for this version, a version v1.110c does exist that will.

Settings 2 Tab

Settings 2 is the tab where most of the main correction factors are. It looks like this:

There are eight boxes for various correction factors, explained below.

Water Temp Correction
-There are two columns for water temp correction. The one on the left is for "light load" and the one on the right is for "heavy load". If you look at the default values, you will see more enrichment at high load and cold temperatures. You will find that the default values are absurd, and need to be reduced significantly for proper fuel mixture.

Accelerate Injector (mS)

-These settings increase injector duration when you accelerate suddenly. This is done to prevent knock when the throttle is quickly pressed. There are three values: RPM, Amount and Decay. RPM is simply a breakpoint, Amount is the increase in injector duration and decay is the amount of time the enrichment lasts. A wideband oxygen sensor is needed to properly adjust these. To adjust this, bring your car at steady throttle to one of the breakpoints (example: 3000 rpm) and then suddenly increase the throttle. Watch the value on the wideband. Increase or decrease the value of Amount until you hit the desired AFR on acceleration. Typically, if you have rich/lean issues, it has to do with your map, not this setting.

Cranking (mS)
-These are injector duration settings at various water temperatures. The default settings are too long, and the Monkeywrench settings are even worse, especially at high temperatures. If you are getting flooding when starting the engine or black smoke on startup, decrease these values. An often overlooked effect of changing to larger injectors is that you'll spray more fuel during cranking. These values should all be adjusted down when changing to larger injectors (or use the compensation feature on Settings 5).

Inj vs Accel TPS1
-These values are for fuel enrichment dependent on how fast you increase throttle. Here, a Setting value of 100 is equal to an INJ value of 1.000. The default settings show you that the faster you increase throttle, the greater the enrichment. Steady throttle (Input = 0) would have no enrichment. Most people leave the default values here, as I have done. If you wanted to alter this setting, I would suggest adjusting the Setting values while leaving the Input values alone.

-These values are for fuel adjustments based on percentage of throttle. The default values give enrichment at higher throttle angles. Many people set these values all to 1.000, meaning that fuel settings are not dependent on throttle angle. This is done to eliminate variables when tuning. I am a big proponent of using this function and feel that it is a much better form of enrichment than using the INJ or Base Map to enrich at high loads. A reason to have enrichment at higher throttle angles is to be able to tune the car to run at stoichiometric (14.7:1) mixture at part throttle for maximum fuel economy and only run rich at full throttle when a richer mixture is needed. There are advantages to using this setting, particularly at part throttle, but using this function is very advanced. For one, it virtually eliminates the chance of running lean under load. In a sense, you are getting multiple INJ maps by using this function. In order to use the setting correctly, you'll need to determine the proper breakpoints for your car. On my car, WOT = 4.04v. Since TPS signal works off a 5v scale, WOT = 4.04/5 = 80.8% throttle. I would probably just bump 79.7% to the top value and put the setting at whatever my desired WOT AFR is. You would then need to figure out what your TPS voltage is at the maximum throttle you want to maintain stoichiometric at and set that percentage as your low limit with a setting value of 1.000. I figure this out by driving around (while logging) and only accelerating to what I feel the maximum throttle is where I would want to maintain stoichiomtric. Once you have your high and low limits for throttle enrichment, you can fill in your intermediate values as you see fit, either simply linear or by testing more throttle angles and deciding what you want the AFR to be under that condition. On my car, I set the maximum throttle for no enrichment as 30.5%.

Inj vs AirTemp
-These values are just like the Water Temp Correction, but for air temp. The default values have a gradual leaning out of the mixture as the air gets hotter. Technically, correction for this is already handled by the MAFS, which directly measures air mass as it is affected by temperature and pressure, making this function redundant. But due to a lack of resolution in the map, you could still fall in the same load cell but need more/less fuel. Watch your AFR's on days with different temperatures to see if you feel this needs adjustment.

INJ vs Air Temp and Boost (max)
-The name and available parameters are misleading. What this setting really does is INJ vs AirTemp (hot). The boost reference most likely does not mean anything, which is the popularly held opinion. What this means is that at some point, the car is considered to be "hot", at which point different air temperature corrections would come into play. There are setting values for Temp and Setting, with the setting value being the same as an INJ value. I have not had time to play with this setting, so I may add more to this later. The one interesting thing to note about this is that the lowest temperature set as a default is 60 C, which is much higher than anyone would actually ever see. Due to a lack of understanding, I simply leave the values at the default.

INJ vs Water Temp and Boost (max)
-The same as the previous setting, except relating to water temperature.

Settings 3 Tab

The Settings 3 tab is used for the setup of the map and definitions of airflow curves. The screen will look like this:

There are three setting boxes on this screen, explained below.

Map Reference
-These settings define rpm and load breakpoints in your maps. A vast majority of users don't adjust these values, but there is a big advantage to doing so. You will see that the values in my table are nothing like those on a Monkeywrench map. Most maps will have rpm scaled in increments of 500 rpm up to 10,000 rpm. This is a wider range than the car will actually operate in and causes you to lose resolution by having cells that never get used. The same is true with the default load values. Only a high hp turbocharged car tht is maxing out the MAFS will see 19,000 load, and no car idles as low as 500 load. Advanced users will scale these values to concentrate points in their usable rpm/load range. To find out what that is, you need to look at idle and redline rpm, and idle load and maximum load. Once you find these four values, you can scale your maps correctly. The big downside is that once you do this, you will need to recalculate your entire map by hand due to switching all the load and rpm references, but the payoff is better resolution and more accurate tuning. I use an Excel spreadsheet to do this and will upload it once I get the final tweaks done to it.

Finding out how your car behaves at idle is very important to setting these values. To do this you will want to make a log at idle from cold to fully hot and plot PIM (load) over the duration of this log. See this thread for more information on this procedure:

Using the example in the thread above, I found on that car that when fully cold, the initial load was around 1680 and dropped to around 1600 when fully warmed up. When the fans kicked on at 93C, you see a jump in load to 1700 and the idle pick up from 1000 to 1150. For load, these are the only two non-linear breakpoints I use. My lowest breakpoint would be 1600 and the second breakpoint would be 1700. All remaining breakpoints between that and my maximum load breakpoint I scale linearly. This makes it much easier to tune the map.

On the subject of rpm breakpoints, I typically don't follow as rigidly linear of an approach. The PFC can extrapolate off the 20x20 grid, so there is no reason to set very high or low rpm breakpoints. In the example above, I would set my two lowest rpm breakpoints as 1000 and 1150 rpm. Remaining breakpoints would be spaced fairly evenly. I tend to like to concentrate rpm breakpoints somewhat closer at high rpm as tuning is more critical there and depending on how my math works out, I often set the highest rpm breakpoint lower than my indicated fuel cut.

One other thing to note with a 2ZZ is cam (lift )transition. You will find that it is impossible to tune directly on the cam switch point, so setting an rpm breakpoint there is pointless. For maximum power, tuning just before and after lift transition is important. Once you determine your optimum lift transition point, you should place rpm breakpoints just to either side of that point. In my maps, I often use a tighter rpm breakpoint spacing (400 rpm) post-cam switch and a looser one before (450-500 rpm).

Air Flow
-The airflow box lets you select five different airflow curves. Most people stick with the default airflow curve. The other setting is for airflow meter calibration. The default values are all 100.0 and 99% of people should leave them that way. The reason they exist is to recalibrate the airflow meter for being in a larger or smaller tube than stock. Airflow meters are calibrated to be in a certain size tube, and changing that sube size in any way will throw off this calibration. But the same effect can be achieved by altering the values in the Air Flow Curves box. Another possible reason to use these corrections would be if you were flowing enough air to max out the meter. You could increase the value for 5.12v to compensate for this, but this would be a rough fix at best.

Air Flow Curves
-These show the the actual airflow associated with a given airflow meter voltage. Careful observation and things learned while tuning will show you that not the entire range is used. You'll notice that the bottom few points show 0 airflow, which makes them useless. My turbo GT-S will nearly max the meter, but an N/A car will not, and should be able to remove some of the high voltage points. Once you remove these points, you can add data points into a more critical area of the curve for better resolution.

Settings 4 Tab

The Settings 4 tab is basically a continuation of the Settings 2 tab. The screen will look like this:

There are seven setting boxes on the screen, explained below.

IGN vs WaterT

-This setting is used to retard ignition timing on a linear scale once water temperature reaches a certain temperature. I've found that my 2ZZ will operate somewhere in the 83-86C range. I also found that even on the hottest summer day, siting in traffic, my car would not rise above 94 C. I left the retard at zero at the lower breakpoint. If you notice knock on a hot day or after the car sits in traffic and the water temperature rises, you can increase the retard at the upper limit to increase the ramp rate.

IGN vs WaterT Cool

-This setting is used to retard ignition when the car is cold. Most people leave the default settings in place here. What the default settings are telling you is that once the car reaches 60 C water temperature, there is no longer any ignition retard.

IGN vs BatV

-This setting is used to adjust ignition advance based on battery voltage. Most people leave these at the defaut values. That said, you should look at what your logged battery voltage is. I notice on my car that most of the time I'm seeing 13.7-13.8v, which will cause the car to run slightly more ignition advance than my map would indicate based on the default settings.

IGN Dwell vs RPM

-This setting is used to adjust the dwell time in the ignition system dependent on engine rpm. Dwell is a term that technically relates to an old style of ignition, but the meaning is similar. Basically, the faster your engine spins, less time it takes for the piston to move up and down. Dwell measures how soon you need to start charging the ignition system to make a spark at the proper time. Since the time needed to charge up the ignition doesn't change as engine speed increases, you need to start that event sooner to compensate for the piston moving faster. I'm not aware of anyone who changes these settings from the default settings.

IGN vs AirT

-This setting serves to retard ignition when air temperature gets very hot. I've noticed that the default settings require the air temperature to be very high before any ignition retard occurs. You should log some data in very hot temperatures and see what the maximum air temperature is in your logs. I lowered the breakpoints significantly below the default settings. My car seems to be unwilling to register air temps above 34 C. I have heard that Toyota had a large number of warranty claims for 2000-02 mass airflow meters (which contains the air temp sensor), so make sure you look at yours carefully.

Boost vs IGN S.F.

-What this stands for is Boost vs Ignition Scaling Factor. I'm not sure why this would be a linear scale from zero to one, or why the "boost" values of 3840 and 7936 repeat themselves in several spots. I have seen the value of 760 logged for boost in FC Edit. What this corresponds to is 760 mmHg, which is standard atmospheric pressure. Since the Celica does not use a MAP sensor, it makes sense that this value would be a constant 760. A pressure value of 3840 is roughly 5 Bar, five times atmospheric pressure or almost 50 psi boost. If that is the case, all these corrections for boost would never come into play. These values my purposely be set this way to make this happen.


-This setting is used to advance or retard ignition timing based on throttle position. Values above 1.000 will advance timing and values below will retard timing. The TPS values are percentages. The default values are all 1.000, and most people do not alter these values.

Settings 5 Tab

The Settings 5 tab is used for setup of the fuel injectors and custom features. The screen looks like this:

There are four setting boxes on this tab, explained below.


-These values are used to make percentage based adjustments to individual injectors. This setting is used if you're switching to larger injectors. For instance, if you moved up to 550cc injectors from the standard 310cc GT-S injectors, your old injectors would only flow 56.4% as much fuel as your new injectors. You could enter 56.4 into the column on the left and not have to make any changes to your map. This setting will affect any settings in the PFC that deal with raw injection times: Base Map, cranking fuel settings and Accelerate Injector settings. This is a setting that I've changed my mind on as I've tuned more maps. Since it automatically adjusts for cranking and acceleration times, I really like to use this setting and leave the default settings in those areas alone.

You can also use these settings for is to adjust for small variances from injector to injector. This would require that you have your injectors tested by an injection shop, and as long as you kept the injectors in order, you could adjust for the small variances in flow rate here. While you had your injectors at the shop, you can have them tested for lag time. The second column is to account for injector lag time variances, in milliseconds. Just as your injectors may flow slightly different amounts of fuel, they may also have slightly different lag times. If you have the stock injectors in the car, you should leave these values at the default values.

INJ Lag (mS) vs BatV

-This setting is used to adjust the lag time of the injectors based on battery voltage. All injectors are rated for both flow rate and lag time at 14v. I have tried and been unsuccessful at finding lag times at various voltages. This is actually not a huge problem, since most cars run right around 14v anyways. Larger injectors will have longer lag times. What I did for my 630cc Mototron/MWR injectors is just take the rated lag time at 14v and divide it by the default value at 14v, giving me a percentage. I then multiplied that percentage through all the values at other rpms. I did this based on a guess that the lag curve would be the same shape for all injectors, but might be offset from injector to injector. Again, this is a guess but since the car typically runs very stable at 14v, that is the most critical value. The effect that the lag setting has on actual fueling is quite large. What it does is compensate for the fact that larger injectors take longer to open. As as example, if you doubled the size of an injector but kept the injector duration the same, you actually wouldn't get double the fuel. This is because more of the on-time is getting used up waiting for the injector to open, so you end up with less effective on-time with the larger injector. A secondary effect has to do with the timing of the injection. With a bigger lag setting, the injection cycle would start slightly earlier to get fuel spraying at the same time. This could possibly affect high rpm performance if fuel were spraying later than expected. If you've switched to larger injectors and then later correct this setting, you'll notice that the car will suddenly start running rich and that you need to decrease all the injection times. Again, if you have the stock injectors, leave this setting alone.

FC Box Custom Features (Key Off / Key On for changes to take effect)

-These are somewhat advanced settings and do not apply to the Celica. Explaining their purpose is beyond the scope of this sticky.


-You can enter notes here about your map. If you have evolutionary map development, you could note the changes made for the new revision.

· Premium Member
36,344 Posts
Discussion Starter · #3 · (Edited)
Now that I understand the stuff in FC Edit, how do I tune my car?

The first step in tuning your car is getting a working base map loaded. For N/A cars, the Monkeywrench Racing maps are popular. The second thing you will need is a wideband O2 sensor. See this sticky for more info on widebands:

As an added note, I would suggest installing a wideband and driving the car for some time on the stock ECU. By watching the wideband with the stock ECU, you will get a good idea how Toyota intends the engine to run under various conditions, which will help you later when tuning. You may wish to write down some observations of stock ECU AFR behavior for your later tuning sessions with the PFC.

One thing that needs to be made clear from that sticky is how important the redundant group loop is with the Datalogit. The Datalogit (and other systems) suffers from an odd floating voltage issue. Stray voltage is picked up in the AFR signal either from an induced signal or floating ground voltages. This stray voltage will cause your logged AFR's to differ from your measured AFR's. Regardless of the type of wideband you use, you need to tie the wideband controller ground into the AN2 port on the Datalogit. The install guide in the sticky shows how to do this.

Another more advanced option is to tweak the polynomial setup for the AFR function. If you look at the default by clicking the Poly button, you'll see that the equation is y = 2x + 10. This will give you a linear function where the AFR reads 10 when the wideband outputs a 0v signal and 20 when the signal is 5v. On more advanced systems like the AEM EMS, there is an additional gain setting to account for differences between the measured AFR and the logged AFR. To account for this, you simply adjust the gain setting until the logged AFR matches the AFR displayed on the gauge. On a friend's car, this coefficient ended up being 0.88. In our example, since there is no separately adjustable gain setting, we would need to multiply that factor directly into the polynomial coefficients. Using 0.88 as an example, the polynomial coefficients would change to 1.76 and 8.8, giving the equation y = 1.76x + 8.8. With one person driving the car at steady cruise and the other adjusting this, you should very quickly dial this setting in.

Once you have your wideband installed and connected to the Datalogit, you need to set it up in order to log AFR. From the main screen Setup menu, select Auxilary. The screen will look like this:

Make sure you check "Delta AN1-AN2" here, and then enter the calibration values for the wideband. The AEM has a linear 0-5v scale ranging from 10:1 to 20:1 AFR, so the default values are correct. Other widebands, such as the Zeitronix ZT-2, use a polynomial calibration, and there is a button to select that.

The constants for the ZT-2 are: a = 0.627, b = 0.4574, c = 9.7758

Next, from the main Datalogit screen, I like to make sure that my maps and logs show my actual rpm and load values, not the arbitrary N and P values. To accomplish this, go to any of the map screens, and right-click over either the N or P values. Make sure that MapRef Labels is checked.

Now, from the Window menu, select Monitor. The Monitor screen looks like this:

The Monitor screen is used for two reasons. The first is to select which parameters will be logged. Most people select everything except for Sensors, which don't have much value for tuning. The second reason to use Monitor is to watch engine parameters in real-time while logging. I find Monitor most useful to watch during cold startup and at idle, when you're spending time in the same load cells and the car is sitting still where you can look at the screen.

At this point, you can either leave the Monitor screen open or close it. Next you'll open the Map Watch screen, which can be found in the same Window menu as Monitor. The Map Watch screen looks like this:

There are two options I always use on Map Watch. First is MapRef Lables, which you can turn on by right-clicking and selecting it anywhere in the N or P values on the table. The second is Map Trace, which is in the View menu on the Map Watch screen. Map Trace will show a black border around the load cell that is currently active. This is especially useful in tuning idle and part throttle.

Unbelievably, you're finally ready to go log some data! I usually log in 3rd gear, but if you're feeling lucky, you'll get more data points in 4th gear if you're not afraid to be hitting 110 mph at the end of your pull. Unfortunately, there really is no good way to do this and stay under the speed limit. Also, you should make your logs on a level road with no bumps. From the Map Watch screen, you can start and stop the log from the Log menu. You can alternatively use the F1 (start) and F2 (stop) keys. I like using the keys because its easy to do with one arm and only me in the car. To make your log (in this case a WOT log), hold the gear you want to log in down to a very low rpm (like 2500), floor it and start the log. Pull the car all the way to redline at WOT and then hit the F2 key just before fuel cut with your foot still on the floor. The reason you do this is because the rev limiter can mess up your logged values right at fuel cut.

Now you should have your log sitting in front of you. At this point, you can scroll through the various parameters that have been logged by dropping down the box where Aux AN1-AN2 Wide Band is. The following list of parameters are most useful in tuning:

Advanced AFL V - airflow meter voltage, a rough indicator of horsepower
Advanced VTA V - throttle position sensor voltage, useful when filtering out WOT data from logs or tuning throttle-dependent enrichment
Advanced PIM - engine load, the values shown on the vertical axis of the map
Basic InjDuty - injector duty should ideally stay below 95%
Basic IgnTiming - ignition advance in degrees
Basic EngRev - engine rpm
Basic Knock - reads higher than Advanced Knock but is what is used to trigger the knock warning light (I only use Basic Knock when tuning)
Basic WtrTemp - water temperature
Basic AirTemp - intake air temperature
Aux AN1-AN2 Wide Band - AFR from wideband

From Map Watch, all parameters can be looked at in several different ways:

Max - the maximum value logged in a cell
Avg - the average of all values logged in a cell
Min - the minimum value logged in a cell
Num - the number of values logged in a cell

In addition to viewing these parameters in Map Watch, you should add watch windows for all of them. To do this, look under the Window menu and select Add Watch. Add watch windows for all ten parameters listed above and arrange them around the edges of the screen, where they will be out of the way. The reason for this will become apparent later when we're tuning.

You can also save the log now, which can be re-opened later from the Map Watch screen. To do this, open your map in FC Edit, then go to the Map Watch screen. From there, select Open again and you can view saved logs.

· Premium Member
36,344 Posts
Discussion Starter · #4 · (Edited)
At this point you should have FC Edit open and a completed log. For the purposes of this example, I will work through the process of a map revision on an N/A 2ZZ map. This map had already been revised through street tuning several times, but is still in a very early stage of development. I would strongly suggest you not use this map on your car. Several of my revisions noted in the FC Edit tutorial above were developed long after this map was created. Your map may be much more rough than this map and may require more revision. Here is a link to the map:

Another tool you will need for revising a map is a good spreadsheet for doing your calculations. The following is a sheet I've written for this purpose:

To follow along with this example, you will also need the log file:

(When emailing Power FC maps of logs, always do it in zipped format. Unzipped files will become corrupted.)

The first thing to do is open the file jesseILbasemap-11 in FC Edit. From there open the Map Watch window. To make sure you are seeing the correct load and speed columns labels, right-click anywhere on the numbers, and check MapRef Labels. Mine automatically loaded the default values for these, so I needed to uncheck, then recheck MapRef Labels.

Next, from the Map Watch window, select Open from the File menu. There should be one log in the unzipped basemap_11_log folder. At this point, the table in the Map Watch window should populate with values. Towards the upper left of the window is a drop down box where you select which parameter you want to look at it. Next to that is another drop down box where you can select if you'd like to see the minimum, maximum or average value, or the number of points logged in each cell.

The first thing I do is note the average air and water temperatures during the run, as well as the maximum injector duty. You want to note these because temperature extremes can affect logged data, and you want to know how close you're coming to maxing out your injectors.

Basic AirTemp = 24 C
Basic WtrTemp = 82 C
Basic InjDuty = 81.8% (max) @ 8100 rpm

As noted in the previous post, there are several main parameters that will be important for tuning. Below are screen shots of some of these parameters:

Aux AN1-AN2 Wide Band (Avg)

Log of number of data points logged

Basic Knock (Avg)

Basic Knock (Max)

The other parameters I mentioned above can be important as well, but at this point I'm trying to give a broad overview of tuning the car.

You will also notice above that I have only shown Basic Knock. Advanced Knock for some reason reads lower than Basic Knock does. If you were to make a number of runs in the car, combine all the logs and then graph them in Excel, you will find that Advanced Knock reads lower that Basic Knock. The knock warning light is only triggered by Basic Knock. For that reason, I ignore Advanced Knock while tuning. The reason we want to look at knock so comprehensively is that knock is what will kill your engine, so we need to make absolutely sure we aren't getting any excessive knock when tuning.

Looking at knock as average and max values in the Map Watch window gives a decent snapshot of what is taking place, but the data s very limited. This brings us to the best way to look at logged data: with the Chart function.

In addition to the Map Watch window, logged data can be looked at in chart form. This shows the logged data over time, so you can see what the actual data looked like coming from the sensor. With knock, this gives a much clearer picture than the Map Watch window does. This actually applies to all engine parameters and you will find that the charts are extremely helpful for tuning, especially with AFR and knock.

NOTE: Ignore Advanced Knock in the following pictures, they are from an earlier revision of this sticky.

To view knock, you need to open the Chart window, which can be found under the Window menu on the main FC Edit screen. The first time you use this, it should bring up a blank chart with no data. From there, you select Chart from under the Setup menu. You'll get a dialog box like this:

The setup of the charts is somewhat confusing. We want to see two separate charts, so we set "Charts" to 2. Next to that is "Chart", which by default will be 1. This means you're setting up Chart 1. Looking at the knock data, we can see that the maximum knock value was just over 40, so you would want to set the min and max values on the right side to 0 and 45 so that we can see the whole picture but nothing unnecessary outside of that range. Below "Charts" you'll see "Trace" and "Chart". By default, these should both be 1, meaning Trace 1 on Chart 1. Below that you'll see "Item" and "Caption". We want to make Trace 1, Chart 1 Advanced Knock, so we select that from the drop down box and give it the label "- Adv Knock." You can put as many traces as you want on a chart, but for clarity, we'll only put one trace per chart. Once this is done, we go and change the upper "Chart" setting to 2, meaning we're now setting up Chart 2. You will want to set the same min and max values for Chart 2 as you did for Chart 1. Next we need to add the trace for Basic Knock, which we can do by changing "Trace" to 2 and the lower "Chart" to 2, meaning that Trace 2 goes on Chart 2. We will select Basic Knock from the drop down, and give it the label "- Bas Knock." Now hit Done, as we are finished with the Chart setup. You will now see a chart of both knock parameters over time for the entire log.

Now not all this data is useful, and we want to focus on only the area of the chart that occurred during the full throttle pull to redline. You'll notice at the bottom of the chart are two white arrows. Clicking and dragging these is used to zoom in on specific areas of the chart. Zooming in on just this small area is eye opening.

A few things should become apparent from looking at these charts: what is real knock and why is the data so noisy? The following thread goes in depth on the first question (it also talks more about why I began to ignore Advanced Knock...also please ignore my petty argument at the end of the thread):

While the preceding thread does a good job of explaining how to define a knock curve and know when you're getting knock, it doesn't explain why the signal is so noisy. The unfortunate answer is that is simply the nature of knock sensors. That is why my knock calibration curve is a range rather than a line. If you have a question about knock on any given pull, repeat the pull. You can also try reducing ignition timing or richening the mixture. If the spike repeats, most likely you didn't have knock there and you're looking at a naturally-occurring spike for the particular sensor. An even better solution would be to install a J&S Safeguard knock sensor on your car, which uses advanced hardware to determine real knock.

The one important point here is that what is normal for one car might not be normal for the next. Repeated runs on this car have shown extremely similar knock sensor behavior, but if your car normally reads much lower knock than this and then suddenly jump to knock values like this, then it is indicating true knock. Basically, part of tuning your car is determining what a normal knock level is. One unfortunate effect of the wide range typically output by the 2000-01 single-wire knock sensor is that at low rpm, real knock occurs at levels below your warning threshold. So always tune with the music off and the windows up so that you can hear what's going on with your engine.

Now that we've gone into gory detail on knock, we've basically come to the conclusion that we're operating the engine safely and aren't in danger of knocking it to death. Now we can go into the process of actually revising the map based on our log. As you're developing a map for your car, the first area of concern is to get your AFR to match your desired AFR. This is where the PFC Tune spreadsheet comes into play.

There are eight tabs at the bottom of the spreadsheet. The one farthest on the left is called "Log". What you will do here is take the values from your Aux AN1-AN2 Wide Band (Avg) in Map Watch and copy them into the top table. You will copy the Num values for the wideband into the bottom table. It should look like this when you're done:

We now have the raw data we need. The reason for average AFR is obvious, the reason to see the number of logged points may not be. The reason we want to see the number of logged data points is that it helps tell us if a point is representative of your log. Cells that only have one point logged in them can don't provide a very good sample, so if they seem far out of line with surrounding data points, they can be ignored. Your tuning changes should be based on where most of your data points fall, as those represent the most accurate sample.

In addition to your table of average AFR values, it is very useful to look at your AFR data in chart form.

As you can see, a smooth line was not logged. By estimating the average value of AFR over a certain rpm range, you can decide if the average AFR shown in the Map Watch table is representative of what really happened. What you will find as you become more experienced in tuning is that if you put too much faith in the average numbers in the Map Watch table, you will often times make too large or small of adjustments and will overshoot the mark constantly. This leads to a number of time consuming and pointless map revisions that get you no closer to a final tuned map.

You may remember that earlier I suggested adding watches for the ten important parameters to look at while tuning. Here is where they come into play. As you drag the blue vertical bar across the chart of your logged data, all the watches will change, showing you the realtime values at any given point. I like to tune using a chart with 3-4 parameters showing: rpm, Basic Knock, AFR and sometimes PIM. Dragging the bar across the chart and reading the watches gives you far more data than simply looking at the Map Watch window.

The next tab on the PFC Tune spreadsheet is the INJ/Target AFR tab. This tab is used for defining your INJ map. In the top table, you define your desired AFR values for various cells. You then define the value you want for INJ = 1.000. Although you can define this as any value, it is easiest to stick with 14.7 because that is the value that the Power FC tries to adjust to when O2 Feedback is turned on. The lower table is simply the calculated INJ values based on what you defined above. These values can be pasted back into FC Edit for your INJ map. There are a few changes that we will make to the INJ map during this revison, but here is the existing values:

In this example, we are using INJ as a target AFR map. To setup the map for this is not trivial. You need to watch which cells are active during different running conditions: idle, standing starts, part throttle cruise, full throttle acceleration. The above map was written to have a commanded AFR of 14.7 at idle and cruise, some enrichment just off idle for clutch engagement, 13.5 at full throttle on the low cam and 13.0 at full throttle in lift. Other values are chosen to make smooth transitions between these values. If you are not using INJ as a target AFR and with O2 Feedback off (my standard method), simply set this map to all 1.000. Be careful through: if you're starting from a map where the INJ map was populated with other values, make sure you use the ReCalc Base function first in FC Edit before pasting your map into the spreadsheet.

The next tab in PFC Tune is Base Map. There are two tables on this tab. As the instructions in the sheet indicate, you want to paste your existing Base Map into the lower table. The upper table is your revised Base Map, which you will paste back into FC Edit when the revision is finsihed.

At this point, we have all the raw data loaded and are ready to begin the revision. This brings us to the next tab, Correction Table. Like the Base Map tab, you will notice multiple tables. The middle table is changes suggested by comparing your logged data to your Target AFR table. I need to reiterate that these are suggestions only, and should be used as a guide to your revision, not as your actual revision. Use your chart to help you make more informed decisions here. If you see a strange spike that you think may be an anomaly, repeat the run. The upper table that is currently filled with values of 1.000, is where you will make your actual changes. The bottom table is a Total Fueling Table, which is used only for graphing because it shows fueling in a way that is easy to understand (INJ factors are applied).

NOTE: The FC Tune spreadsheet was written assuming that INJ would be used as a target AFR table. Therefore total fueling is the base map multiplied by the INJ map. A target AFR table is still necessary for the spreadsheet to work, but if your map does not include one, you would need to make the total fueling table equal to the base map.

The first changes we'll make this revision are to the INJ map. The first change comes from a suggestion of one of the testers of the map. He found that having the INJ set at 14.7 at idle caused a good deal of fluctuation and that richening it up to 14.3 solved most of the problem. So the first change is to change the 9x9 block of values in the upper left-hand corner on the INJ/Target AFR tab on the PFC Tune spreadsheet from 14.7 to 14.3. I also changed the first three load rows in the 1900 rpm column from 14.7 to 14.5 to make the transition in AFR smooth. The other change we'll make to the INJ has to do with fuel ratio at lift transition. People have found that the car runs better leaner on the low cam and richer on the high cam. That is why I have set the INJ map to command 13.5 at full throttle on the low cam and 13.0 at full throttle on the high cam. However, the transition between the two is not that smooth, so the second change will be to change the values in the 5500 rpm speed column from 13.5 to 13.3 for load rows 6900 - 13900. The INJ/Target AFR tab should now look like this:

What you will no do is copy the bottom table on the tab and paste it back over you INJ map in FC Edit. Some numbers will change a tiny bit, because FC Edit can only recognize certain numbers, but this change is small enough that it can be ignored.

Now back to the fueling changes. Looking at the Correction Table tab, the middle table are changes suggested by your logged data. To work on applying these changes, we must first decide which data to ignore. In this case, since this was a full throttle run, we will ignore suggested corrections below the 7600 load row. Furthermore, looking at the chart of AFR vs. rpm will show that there are some wild fluctuations below about 3900 rpm due to the driver suddenly jumping on the gas around that rpm. For that reason, we need to ignore the values below the 4150 rpm column. This brings up an important side point about logging good data. You should always start below the rpm you wish to collect data at and roll into the throttle smoothly. What we then need to do is hand transpose over the values from the middle table to the top table that we want to use. DO NOT use the Copy and Paste functions from Excel, as these will copy over formulas and mess up the entire sheet. You must manually key in the numbers. I also ignored the value at 8500 rpm/8300 load since it was logged after the throttle had been lifted. During the time you were keying these values, if you had been able to see the revised Base Map and Total Fueling table, you would have seen the corresponding values change.

Now that we have manually keyed in the recommended changes, we need to look at what effect they had on our map. Because of the hysterisis function the Power FC uses, a change suggested in one cell means that several cells are actually involved and may need adjusting. Every data point could be considered to be between two rpm points and two load points. The hysterisis function will pull from all four of those cells. Because of this, the entire recommended change in one cell is not a good way to tune. This will become more clear when we look at the graphs.

· Premium Member
36,344 Posts
Discussion Starter · #5 · (Edited)
So the first point we'll look at is the 4150 rpm/9000 load point. This happens to be the P13 load row, so we'll want to take a look at the P09-P15 tab on the spreadsheet. When we do this, we should notice something immediately.

We have a big dip in fueling at 4600 rpm. We are actually using less fuel at 4600 rpm than at lower rpms. Looking at the graph of AFR vs. rpm, we can see that we are running fairly rich from 4000-5000 rpm. Taking a look at the P14-P20 and P05-P11 graphs, we can see that this trend continues across many load rows. The change in fueling at 4150 rpm/9000 load is not even noticeable. We have also taken away fuel in the 4600 rpm column at both the 8300 and 9000 load points. What this shows us is that we're taking too much fuel out of the 4600 rpm column to try and compensate for an entire area of the map that is too rich.

So what we're going to do is go back to the 4600 rpm column and actually add some fuel back in. I will change both values there to 0.990. Next I will begin to reshape the entire map below 4600 rpm to take away some fuel. Before I do this, you need to understand that higher rpm's don't necessarily always mean more fuel. The engine has different efficiencies at different rpm's, and at some points may actually reqiure more fuel at a lower rpm. Also, in order to accelerate smoothly from lights, some extra enrichment is needed at low rpm. Going back to our graphs, I would say that in this case, we've just extended our off-idle enrichment to too high an rpm. This off idle enrichment can be seen as the hump in the graphs from about 1900 to 4150 rpm. Making changes like this is the most difficult part of tuning, because there are no hard numbers to guide you and experience is really the biggest factor in doing this well. The one rule of thumb to follow is generally don't make large changes. Its better to make small changes and then retest. I typically keep my changes to around 3% per revision.

To make general changes like this to the map, you will just enter values into the Correction Table top table and keep looking at the graphs until you get something that looks good to you. I will not go through the tedious process of doing this, but I will show tables of recommended changes, recommended changes minus ignored data and final changes.

Table of changes recommended by logged data.

Table of recommended changes minus ignored data.

Final table of changes.

You can see from the final changes that I went far beyond what was recommended, but in reality I was for the most part I was only moving around a few percent of fuel. One change I did make was to remove 3% of fuel from all cells in the cruise range. The existing revision of this map had complaints of being extremely rich at part throttle. A 3% reduction may not be enough, but I moved so much other fuel that I felt it would be safer to only remove a few percent and then log more data. At the very high end, I chose to reshape the are very slightly and take fuel out of the very high load cells rather than the logged cells. This choice was made because I was beginning to see a large gap between the logged cells fueling and the very top cells fueling. Again, its easier to make small changes and see the effects than it is to make big changes. Also, if an idea you try completely doesn't work, you can revert to the previous revision.

The biggest change made, and the only area I went past about 3% changes in fueling was in the cells from 1900-4150 at high load. These cells never actually get used, but because of the hysterisis, their values can affect fueling elsewhere. The reason I made this change is that previous revisions of this map had proceeded off of a map which I did not write. This map I felt had an unrealistically large spike in fuel in the 1900-4150 range. If you look at the graphs of the map before any changes were made, you can see this as a huge hump, followed by a big trough from 4150-5050 rpm. In previous revisions, fuel had been continuously taken out of this range because data had been logged there. However, the unrealistic values around it had begum to make a "hole" in the map, meaning we were overcompensating a few cells to try and correct fueling. If in your own tuning you begin to see holes or troughs in your map, it is an indication that you have an entire region of your map which is off. For this reason, you can see that despite being rich from 4150-5050 rpm, I actually made very few changes there, instead choosing to reshape the entire map in that area to call for less fuel.

As a second example, lets look at fuel at high rpm: 6500 rpm to redline. Repeated logging will show that the car is running in roughly the 10000-12000 load range. Previous revisions of the map have led to many revisions in that area of the map, but little change elsewhere. Here is a picture of that area of the map with the recommended changes applied:

Then look at the several load rows below and above those at the same rpm:

What you should notice is that the slope of the load lines in the area where we're constantly running is significantly more negative than in other load rows for the same rpm. This indicates that we have a general problem with the shape of the map from 6500 to redline, and that we should make a more genreral change to the map. Rather than applying the changes as is, I chose instead to take less fuel away in the 10000-12000 load range, and take some fuel out of other load rows. This makes the fuel mapping more uniform regardless of load and should be a move in the right direction.

The goal is that the more revisions that are made, the closer your car behaves to the commanded AFR and the smaller the called for changes are. At that point, the revisions approach what is recommended by the logged data and the less guesswork is involved.

So with that the map revision is complete. At this point, you will want to look at the top table on the Base Map tab on the spreadsheet. Copy the values in this table and paste it over your Base Map in FC Edit. Now save it as a new revision (revision 12 in this case).

Hopefully this has given you a better understanding of tuning, and how your logged data should guide you. The more revisions you make, the closer your map will get to matching your Target AFR map. This will also mean that less general changes will need to be made, as they were in this map. In other words, the better your map, the more the logged data means.

I will touch on tuning IGN and VVT, since these are the two areas where power is really made. IGN stands for ignition advance, and the rule of thumb is that the more advance you use, the more power you will make, until the engine starts to knock. This is not 100% true, and the actual setting for best power needs to be determined on the dyno, but for street tuning, you can advance your timing until you start to see knock increase, then back it off slightly.

The VVT map relates to the VVT-i system. The VVT-i system changes the timing of the intake cam, which can have a big effect on engine efficiency and therefore power. Tuning the VVT system is dealt with in the following threads:

From my own experiences tuning the VVT system, I've found that the following suggestions may be helpful. One of the biggest complaints people have is that they get a bog or very rough running at the cam change point. The easiest way to correct this is to set your "window" as small as possible. What I mean by that is that your VVT setting before this point will be very high and the setting after that point will be very low. I've found that the ideal post-switch VVT setting will be down around 0 and the ideal pre-switch setting will be up around 45. Unfortunately, the car will bog horribly if you use those settings. What you will find is that the difference between 0 and 10 post-switch is almost negligible, as is the difference between 45 and 35 pre-switch.

The setting after the cam switch determines how hard the engine comes up on the big cam. It will have no real effect on peak power production. A higher number will soften the hit, which may be advantageous for keeping the tires from breaking loose. If you determine what VVT setting you reach peak torque at, don't go any higher than that value immediately post-switch. I personally would go no higher than 15 in this range and I would probably keep it closer to 10 with preference to changing the setting pre-switch.

The setting before the cam switch determines basically how well the car holds power before the cam switch. On a stock engine, the car begins to lose power here. This is most likely because the stock ECU re-advances the cam to avoid a bog at the cam switch. The lower you make this setting, the more power the car will lose here.

It should be noted that poor VVT settings can also cause knock, especially just before the lift change. Usually, over-advancing the cam causes knock (what the numbers mean is explained above), so if you are seeing knock in a certain area and can't get rid of it by adding fuel or retarding timing, increase your VVT number.

· Registered
216 Posts

· Registered
54 Posts
Jesse IL said:
Sounds to me like your injectors may be maxing out. Its the only reason why increasing fueling wouldn't lead to richening the mixture.
The injectors are of the right size (630cc) and the Duty Circle reaches the maximum of 77,5%. The problem consists in the the MAF that makes the load reach the maximum on the map.

The voltage of my MAP is from 0 to 5 volts and I know the scale in relation to the pressures reported, could I use it instead of the MAF? Would I have problems with the air mass data in that case?



· Premium Member
36,344 Posts
Discussion Starter · #10 ·
There's your problem. Your MAFS is maxing out. There are two solutions. One would be to run a larger charge pipe. You're probably running a 2.5" charge pipe. Most people with turbocharged cars run 3" charge pipes to prevent this problem. The second would be to switch to the MAF from a WRX STi, which has a greater range. Of course you need to retune for either case.

And you can't use a MAP sensor, that would be bad.

· Registered
985 Posts
Jesse here is some of the data log from my PFC. I am going to follow your steps above and tune my PFC using my G-Tech Pro RR as a dyno tool. Your input will greatly appreciated throughout this process.

First off take a look at my data below and let me know if the engine looks to be running safely. Let's take it step by step and first determine whether the loaded map is safe. I will then post up screen shots of my settings which were loaded from one of your basemaps. From there we can fine tune everything.

Basic Air Temp = 14 Deg. C
Basic Water Temp = 74 Deg. C


· Premium Member
36,344 Posts
Discussion Starter · #14 ·
I'd say it looks fine. Only issue is that you don't have the map ref labels right in your screen shots. If you ever get the default values like you have, uncheck Map Ref Labels and then recheck it.

Now please post screen shots of the actual map.

· Registered
985 Posts
I am running an unmodified version of your jesseILbasemap-14. The car runs good but I need to fine tune it a bit especially at lift transition. Here is the actual dyno comparing my factory ECU with your PFC map. There are some nice gains.

Screen Shots


· Registered
985 Posts
Engine mods as far as performance is concerned are as follows:

Cryo Treated Engine
MWR Main & Rod Bearings
ARP Stud Kit
Supertech Valves
Eibach Valve Springs
SwainTech Ceramic Coated Piston Domes
SwainTech Teflon Coated Side Skirt
Ported & Polished Head
Jet Hot Coated Ported & Polished Header
Ported & Ceramic Coated Intake Manifold
TRD Exhaust
Injen Cold Air Intake
Fidanza Lightweight Flywheel
Southbend SS TZ Clutch
AEM Underdrive Pulley
Koyo Racing Radiator
Moroso Oil Pan
Permacool Oil Cooler

· Premium Member
36,344 Posts
Discussion Starter · #17 ·
The first thing I'm going to do here is basic map setup. I'm going to cover some rules of thumb of how I like to set up maps including basic settings I've found work well. I'll do an installment every day.

Throttle said:
We'll start with the Settings 1 tab. The first thing I'll look at is the Function Select box on the left, particularly the O2 feedback control and the Idle ignition control. The first thing I'd change here is to turn off O2 feedback and turn on Idle ignition control. With the idle set up correctly, the ignition control will actually do a good job. The O2 feedback has proven problematic to me. You should ALWAYS turn it off when tuning, and once you get things where you want them, you can try turning it back on. In my experience, it causes a very lazy oscillation around stoichiometric, going from really very rich to considerably lean. In my own car, I leave this off.

Next we'll look at VVTL High and Low. When you lower the switch point, you aren't in danger of dropping out of lift, so I simply set both numbers the same. On an N/A car, I set this at either 5600 or 5700. On a turbo car, this number will move around, it really seems to be different on every car. Realistically, you should tune VVT on every car and see where this falls.

Next, look at Idle A/E and Idle A/C. There is no reason to set a 200 rpm split here. I'd only bump 100 rpm for A/C. So if you want a 1000 rpm idle (which I've found is smoother with lightweight flywheels and/or motor mount inserts), set Idle A/E at 1000 and Idle A/C at 1100.

Now we're on to F/C A/E and F/C A/C. These numbers will always be higher than the Idle numbers. What you want to do is lower these until you get a surge at idle, then raise them slightly back up. What I mean by surge is a constant rev up/rev down cycle.

the final thing I'll look at on this screen is the knock warning threshold. 50 is almost certainly too high. I use 42 on my car, but you need to do a knock sensor calibration for your car, as explained above in the sticky.

· Registered
985 Posts
If I select read all and change the settings and then write all is that the best way to make the changes? I assume if you delete the loaded map and reload everything you will have to redo the idle learning process.

· Premium Member
11,480 Posts
On the 5th page of settings.... where we can adjust for bigger injectors ....can we do the same for smaller ones?
Where talking going from a car that has 330cc to a car that has 310cc.
I'm thinking that would put it over 100%....if that is possible.
Or is there another way?
I'm really trying to save some time, then going over the whole map and lowering it.
1 - 20 of 243 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.