Welcome to the SR20 Community Forum - The Dash.
SR20 forum logo

Thread: Beginners Guide to Chipped ECU Tuning

+ Reply To Thread
Posts: 1-10 of 112
2010-12-24 05:25:20
Beginners Guide to Chipped ECU Tuning
Table of Contents
Terminology and Definitions - Also covers: ECU Daughter Boards & Tuning Software
Setting up TunerPro RT
Modifying the BIN
Calum's Map Tracing Values

Big thanks to Calum for making this even possible
Dave Dunn (dfddfd2) for helping with understanding the ECU's and bringing us TunerCode
Devin For his Z32 ECU Tuning guide that explains a lot of core functions
John (JKTUNING) for bringing us new Boards and NismoTronic Tuning Software
Mark Mansur for bringing us TunerPro Tuning Software.
Last edited by Vadim on 2015-10-04 at 02-11-19.
2010-12-24 05:25:33
Terminology and Definitions
Terminology and Definitions

B13/OBD1/32bit vs B14/OBD2/64bit
An easy way to tell on if a BIN will work on your ECU is to look at the BIN's file size. If it's 32KB then it's for an OBD1/B13 Ecu. If it's 64KB then it's for an OBD2/B14 ecu.

If you want to use a BIN that is not compatible, you will have to open the tune and manually copy and paste the values into a BIN that is compatible with your ECU.

I will sometimes refer to items as being Chassis specific or as 32bit/64bit only. Main reason for this is, just because one specific Chassis doesn't have an item doesn't mean all 32bit/64bit ECU's don't have that item. B13's and S13's share a similar BIN structure, but have different tuning values. Same goes for B14/S14's.

Quick Explanation of the two file types:
  • ROM Files (.bin extension) - ROM files are the actual tune's. All of the values that tell your ECU how to run are located in the ROM file.
  • Address Files (.xdf/.adr extension) - Address files tell the software how to interpret and display the values found in the ROM files.

Detailed Explanation of ROM files and Address files and what they do:
There are two main files involved in ECU tuning. The ROM which is the actual tune, ".bin extension", and the Address Definition file ".xdf extension" in TunerPro and ".adr extension" in RomEditor or NISTune. You will be able to tell which file is which by looking at the extension of the file. Like say "B13RT.xdf" is the address file, while "B13-DET-370cc-3BAR-Z32.bin" is the actual tune.

When you modify values in currently defined fields, you will be modifying the actual ROM file. When your done tweaking those settings save the ROM file or upload it to the ECU.

You can modify the Address file too, which would add new fields to modify. Be careful with this though, if you modify the wrong value, you could change an important value that could damage your motor. The best practice is to not touch Address files, unless you know what your doing!

ECU Daughter Boards

Chipped ECU's will usually be referred to as "Calum ECU", "NismoTronic ECU, "NISTune ECU". Technically speaking all of these are OEM ECU's just with a specific Daughter board installed. What OEM ECU you have doesn't usually matter (Besides OBD1 vs OBD2), the Daughter board makes all of the difference on your tuning abilities though!

Calum Basic - Utilizes burnt chips to store the tune. If you want a new tune, you need to burn the tune to the chip and physically install inside of the ECU. This Board is no longer made.

ECU Version: OBD1 and OBD2
Firmware: OEM and TunerCode (OBD1 Only - No longer Sold)

Calum RealTime - Has onboard memory, which allows you to store a tune without needing chips to be burned. Tunes can be downloaded and uploaded via USB Cable. RealTime ECU also provides Consult feedback through the same USB cable, just on a different COM port. This eliminates the need for a third party Consult cable to View and DataLog data. This Board is no longer made.

ECU Version: OBD1 and OBD2
Firmware: OEM and TunerCode (OBD1 Only - No longer Sold)

NismoTronic Basic - Very similar to the Calum Basic ECU, it is compatible with any bin file (Regular Nissan or TunerCode).
You can purchase this brand new from NismoTronic.

ECU Version: OBD1
Firmware: OEM and TunerCode

NismoTronic NEMU -
You can purchase this brand new from NismoTronic.

ECU Version: OBD1
Firmware: TunerCode

You can purchase this brand new from NISTune

ECU Version: OBD1 and OBD2
Firmware: OEM Only

Tuning Software

TunerPro vs TunerPro RT - TunerPro RT (Real Time) lets you connect to the ECU in real time and upload files directly to the ECU. While regular TunerPro lets you modify the tune and save it only. Since we like to save time while we are tuning and are paying per hour on a dyno, I highly suggest using TunerPro RT. You can keep it open at all times and simply push the new tune to the ECU. Now if you have a Basic ECU, you don't need to worry about TunerPro RT, since you have to burn the tune to chips anyway.

NisTune - NisTune is an all in one tuning solution for a lot of Nissan ECU's. NisTune will work with NisTune chipped ECU's and with Calum chipped ECU's. NisTune will NOT (without serious modifications) work with TunerCode firmware and with NismoTronic ECU's.

RomEditor - One of the original tuning software that was available to us. By today's standards it's ancient and difficult to use, stick to TunerPro .

NismoTronic Tuning Software - This is the only supported software for the NEMU daughterboard. Older version of NismoTronic worked with Calum ECU's and TunerCode firmware

Data Logging Software

Data logging software lets you see what the car is actually doing while you are driving. This is a must for successful tuning, sadly data logging is the weakest segment in tuning our cars.

You can actually data log factory ECU's with a consult cable and consult compatible data logging software

Consult Cable or USB Logging (Calum RT)
Nissan Data Scan - $50 -

Consult Cable Only
Nistune - Built Into Nistune tuning Software

USB Logging Only
NismoTronic for OBD1 Calum RT -
NismoTronic for NEMU -
TunerPro Realtime - (Calum RT TunerCode required)

Custom Firmware

Firmware is the ECU's operating system (like Windows, Linux, or Mac OS), where allows the computer to start and then you can run other programs (in this case Tunes). Tune changes are limited to what the Firmware allows it to do, thus if you want more advanced features like MAP support, you would need custom firmware to do that.

To date there is only one Firmware solution for our ECU's, TunerCode, but it's limited to OBD1 ECU's only.

TunerCode is a replacement firmware for OEM ECU's. The OEM firmware was rewritten and shaped for better tune-ability, like allowing you to tune above 8k RPM. Along with new features, all of the tunable tables and constants have been defined and documented. That means no more unknown tables with unknown values.

TunerCode V6 is part of the NismoTronic NEMU package, which makes the OEM ECU be more like a standalone ECU with support for MAP load (MAF delete), Boost by Gear, VVL activivation, and a lot of other goodies.

NismoTronic RT - TunerCode comes bundled in the NismoTronic RT Tuning Package and is available today.
Calum OBD1 ECU - TunerCode is no longer sold for OBD1 Calum ecu's.
Last edited by Vadim on 2018-10-04 at 17-05-29.
2010-12-24 05:25:41
Setting up TunerPro RT
TunerPro RT

Setting up the Driver
  1. Download the driver and Install it.
  2. After you install the drivers you will see two COM ports (in Device Manager). One port will be the Consult Port (USB Serial Converter A) while the other one is for the Emulator to upload Tunes (USB Serial Converter B).
    You will be using the Converter A Port for Nissan Data Scan or any other Consult software. Actual tune modification will be done using Converter B. It's a good idea to make sure the COM ports are as low as possible (under 10).
    This will help with compatibility with some ancient tuning software that doesn't like higher numbered COM ports.

Find the BIN for your specific ECU!!!
Nissan updated the tune and the firmware behind it with just about every year they released the car. This means you need to first find the stock base tune that was build for your specific ECU. Loading the bin from another ECU might work, but I've seen some serious issues too.

Steps for how to do that can be found here.

Loading Tune

  1. Download and Install TunerPro RT.
  2. Start up TunerPro RT, which should automatically detect your ECU.
  3. Open up TunerPro RT, wait for it to load and nag screen go away. You can purchase the software to help you safe some time.
  4. If you want to change the default settings of the program, you can do so at Tools, Preferences under the General Tab. I wouldn't worry about this one until later though.
  5. First thing we want to do is open an Address file. Click on XDF, Select XDF.... Navigate and select the XDF that you would like to use.
  6. Next step is to find a tune (ROM) that you want to modify. Click on File, Open Bin.... Navigate and select the BIN that you would like to tune.
  7. Now we can start looking at items that we can tune.

Uploading the Bin

Uploading the tune is very simple:
  1. In the toolbar look for an UP Arrow, should say "Upload Current Bin to Emulator"
    CAUTION! Your Calum RealTime ecu allows you tune on while the car is running! There are some restrictions to this though, you can only upload changes to the BIN that is currently on the ECU. If you want to switch to a different BIN file, you must shut off the car first, by moving the key to OFF position.
  2. Another way to do this is by going to Tools -> Emulation -> Upload Current Bin to Emulator

Downloading the Bin From ECU

Sometimes you might want to use the Bin that's currently on your ECU. Downloading the bin is as simple as uploading it.
  1. In the toolbar look for an Down Arrow, should say "Download Bin from Emulator to TunerPro"
  2. Another way to do this is by going to Tools -> Emulation -> Download Bin from Emulator to TunerPro
  3. The bin will be now loaded into TunerPro, you can save it, or modify it and re-upload it
Last edited by Vadim on 2012-11-20 at 14-53-10.
2010-12-24 05:25:50
Modifying BIN
Modifying the BIN

Injector K Value - K Value, in short, is a multiplication factor for injector pulsewidths. Now Dave from TunerCode was able to see that the K value does a lot of things within the ECU. This is why with TunerCode you don't modify the K value for new injectors. Since a lot of things depend on this multiplication factor, it's best to keep it as close to the stock value as possible (B13 K Value=31206, B14 K Value=298).

If you don't have TunerCode, then you are required to modify the K Value, because there is no other way get the new Injectors or MAF to work. Just remember to rescale your TP Scales. If you don't you might be running too much timing or not enough fuel while you are in boost.

How is K value calculated?
TP = (VQ x K Value / CAS Value) / Number of Cylinders

Formula for new K Value:
(Old INJ Size / New INJ Size) * Old K Value = New K Value

In this example we take a stock B14 tune and add 370cc injectors to it.
(259cc / 370cc) * 298 Old K Value = 208 New K Value

Injector Latency - This controls how long the injector stays open. Bigger injectors don't need to stay open as long, because they spray a lot more fuel, thus this value needs to be adjusted down. You will see the biggest difference when you adjust the values at idle.

Injector Scaling Constant (B14 Only) - CC value for the injectors. Probably is used for a calculation. I haven't noticed the Scaling Constant on B13 BIN's. You can find a good number of Nissan VQ Tables here.

MAF Voltage Point - Low: If your MAF voltage falls below this voltage for a certain amount of time, the ECU will enter into Limp mode. If your MAF is old and tired and you can't replace it yet, you can lower the the low MAF voltage point. If your MAF idles below 1.0v, then it's defective and needs to be replaced, more on this.

Operational MAF Voltages as per FSM.

VQ Table: The MAF reads voltages based on airflow, this table helps the ECU match the voltages from the MAF to the values that the ECU can understand. If you have a proper VQ table and voltage match-up, you can use any 0-5.12v MAF on this planet.

When you change MAF's, you need to update the VQ table with the new MAF's values, you will also need to update the K Value, which means you have to update the TP Scales too. Unless you have TunerCode, then you can get your AFR's up or down using the Current Injector Size scalar.

TTP Min(B13 Only): Minimum Total Theoretical Pulsewidth for injectors at a given RPM. Since bigger injectors don't to stay as long as the smaller injectors, adjusting the TTP Min helps avoid extra fuel richness.

TTP MAX: Maximum Total Theoretical Pulsewidth for injectors at a given RPM. As you get more power, TTP Max might restrict you from flowing any more fuel. Adjust accordingly.

Warning don't even bother adjusting the Fuel/Timing Maps without a wideband.

Fuel Maps
There are four fuel maps total; Primary No Feedback, Primary Feedback, Secondary No Feedback, Secondary Feedback. It's still not exactly clear what the secondary maps are for, some say they might be low octane maps. What I've always done is copy the primary no feedback map and paste it onto the secondary no feedback map.

No Feedback Map
To get started, open the No Feedback map, everything that is not in 100's can be modified in this table. You will use the No Feedback map to tune the partial throttle to full throttle. If you try to modify any ~192 valued cells, TunerPro will change them to be 100, thus you have to use the Feedback map to modify those items. This is actually a TunerPro feature, maximum value per cell, you can increase it, but then your cell coloring will become blander.

Feedback Map
In the feedback map, you can tune your cruising/light driving cells. You will notice that the cells that used to show 100+ values now show regular 0's and 10's.

How Feedback works for fuel maps: When you are in the No Feedback map, you will see a bunch of rather high numbers, around 192. That means that is the part of the cell where the O2 sensor feedback will be used. Tuning the O2 feedback areas is not as important as tuning the higher load/RPM areas, because O2 sensor readings will be used to keep the car near 14.7 AFR's. You still want to tune the Feedback portion of the map though, they will be used as the AFR base for the ECU to compare against the actual O2 sensor readings, plus if your O2 sensor gets disabled, ECU will use the values in the cell's for the fuel amount.

You can also easily convert feedback areas to not have feedback at all. 192 = 0, just subtract 192 from all of the feedback cells. You will get the actual number that the ECU would use.

For ECU's that use Target AFR's (Mainly OBD2). Feedback enabled portions are 14.7's. Anything above 14.7 is still used O2 sensor feedback by the ECU, anything below that uses the map instead of O2 sensor.

It is a lot harder to lean out ECU's that use Target AFR's. You basically have to keep the values below 14.7 and turn the K value way down. This is not a good idea either, because OBD2 ECU's rely heavily on the O2 sensor and tend to lean out under boost for a few seconds.

Note: Before tuning the fuel maps, disable your O2 sensor, and adjust your K value (if using TunerCode Current Injector Size) so that your cruising AFR's are as close to 14.7 as possible. Then start adjusting the Fuel Maps to get the proper air to fuel ratios while under load.

This is a OBD1 map, OBD2 maps have target AFR's which are more self explanatory.

Timing Maps
There are four timing maps; Primary and Secondary, Normal and knock map. Timing maps control the spark advance, the higher the value in the cell, the earlier the spark will fire Before Top Dead Center (BTDC). Fire the spark too early and you will get detonation.

The feedback and no feedback maps work exactly like the fuel maps do, except feedback starts cells with 128*.

How Feedback works for timing maps:
All of the values above 128 have the Knock Sensor feedback enabled.

You can also easily remove the knock sensor feedback areas, 128 = 0*, so subtract 128 from all of the feedback cells.

RPM Scales: You can define which RPM points you want to show up on the Fuel and Timing Maps so that you can adjust the fuel and timing. The ECU will interpolate between two RPM points and extrapolate above the maximum RPM point.

There are two RPM scales; one for the Fuel Maps and the other one for the Timing Maps. It's generally a good idea to keep these consistent for easier tuning. The ECU will always round up to get the next top cell.

TP Scales: Similar to the RPM scales, accept this is for engine load. ECU will interpolate in between the TP Columns, and extrapolate if your TP is higher then the maximum TP. Adjusting the TP scale is very vital to make sure you have the right amount of fuel in the higher loads, especially when in boost.

With TP scales, you do want to keep the TP values fairly close together so that the ECU doesn't have to interpolate too much. I've noticed a lot of engine knock simply because my TP scales where too far apart and while the ECU was interpolating it didn't pull the timing back fast enough under boost.

To find the maximum TP, do one run while datalogging your TP and see what was the highest TP that you hit. Set the last column to be a little above that (ie: if you hit max 105TP, then set the last column to be 110 or so), that gives you a little head room.

If you set your TP values too high, ECU will never reach them, depending on how your tune is, you might be in the column for 5 psi while you are boosting 10 psi. This could be fetal to your engine. If you set your TP values too low, then you run the risk of dumping too much fuel while not having the sufficient airflow because your engine load is too low. I personally ran into this issue, when I was first beginning to tune, pressing the throttle slightly would give me 10-11:1 AFR's. This made my performance and gas mileage suffer. By properly adjusting the TP Scale, you should be able to get your AFR's be just right.

0200 - TPS Enrichment Trigger:Unfortunately this one is only available to the OBD1 ECU's. Simply put, when the voltage is above the listed TPS Voltage, based on RPM, the ECU will go to the right most column of a fuel map and use the fuel amounts from that column. This is done to give a little more richness to help compensate for fast throttle opening, even though there is a Fast TPS enrichment table too.

This Enrichment trigger is only used on NA cars by Nissan. Turbo SR20 ECU's have this this disabled and all of the voltages set to 5.10v. Otherwise you will use fuel amounts for say 10psig when your still in vacuum. Which means very rich AFR's and you are just dumping fuel and loosing power until you build up airflow.

I personally like my ECU to use what's on the specific column for the TP I'm at, and not the right most column, thus I disable this for my NA and turbo bins.


Please refer to the Z32 ECU Tuning Guide for a more in depth descriptions of most of the tunable items
Last edited by Vadim on 2013-02-26 at 15-42-53.
2011-02-10 15:42:39
Bringing this over from the Calum's section on the old forum in case it goes down.

Originally Posted by Calum

B13 (and G20) SE-R 91-93, S13 KA24DE 91-93, RNN14 SR20DET Map Trace Values:

RPM MSB - 4475
RPM LSB - 4474
TP - 4292

Timing map - 8D00 (S13 KA - 5th Gear - 8800)
RPM Scale (timing) - 8480
TP Scale (timing) - 8490

Fuel map - 8100 (S13 KA - 5th Gear - 8E00)
RPM Scale (fuel) - 80E0
TP Scale (fuel) - 80F0

(Fixed Calum had them backwards)
B14 SE-R 95-97 (G20 94-97) Map Trace Values:

RPM MSB - 3472
RPM LSB - 3471
TP - 314E

Timing map - ED00
RPM Scale (timing) - E490
TP Scale (timing) - E480

Fuel map - E100
RPM Scale (fuel) - E0F0
TP Scale (fuel) - E0E0


S14 KA24DE 95 Map Trace Values:

RPM - MSB - 3473
RPM - LSB - 3472
TP - 31B1

Timing map - ED00, 5th Gear Timing - E800
RPM Scale (timing) - E480
TP Scale (timing) - E490

Fuel map - E100, 5th Gear Fuel - F000
RPM Scale (fuel) - E0E0
TP Scale (fuel) - E0F0


Quick Instructions: Using Nissan DataScan, fill in the boxes below with the correct addresses. Start map tracing. Thats it.

Got an SR20 ecu that you don't have the RAM addys for? Shoot me an e-mail with the bin from your ecu and I'll back out the correct addresses.


Nissan DataScan ($30):

blaZt - Nissan Datascan version 1.54 software for reading engine sensors and trouble codes

Last edited by Vadim on 2013-05-12 at 04-03-12.
2011-02-11 00:06:12
Link to Drivers doesn't work anymore. Which ones to get instead?
2011-02-11 00:11:04
Originally Posted by M0J0
Link to Drivers doesn't work anymore. Which ones to get instead?

I'll be testing this on my new laptop and will report back .
2011-02-11 00:14:56
Hmm, found this on the old forum:

Realtime ECU Quick Start Manual - SR20 Forum
2011-02-11 04:16:11
Yeah but Calum's site is down with all of the docs hosted there.
2011-02-11 07:37:10
This is still a work in progress so please bear with me.
+ Reply To Thread
  • [Type to search users.]
  • Quick Reply
    Thread Information
    There are currently ? users browsing this thread. (? members & ? guests)

    Back to top