Basic Ecu Tuning
Basic Ecu Tuning
Basic Ecu Tuning
What we actually do is program (or "burn") a new bin file to the ROM to replace the program currently running the ECU. In order to chip an ECU, you will need the following:
Soldering Iron - to solder chips in to the ECU Desoldering Tool - to remove chips/solder from an ECU. A Desoldering Iron, Desoldering Braid, or a Desoldering Station will also work. Read the Desoldering Tips. If you are uncomfortable doing this, or dont have access to the tools, some of the PGMFI members will sell you a ZIFSocketed ECU Rom Editor - to create new bin file to burn to the Chip Rom Burner - to a chip to replace the stock program ROM Library - To get some ready made bins Chips For ECUs - to burn the new Bin file to - the ATMEL AT29C256 seems to be the chip to get Parts For ECUs- is a fairly comprehensive list of the parts needed for ECUs.
Sounds pretty easy eh? Dave B. wrote a great Introduction To ECUChipping article that is an excellent place to start learning about chipping ECUs NOTE: OBD0 MPFI ECUs do not always have a ROM for you to replace. Don't despair, Chipping An8889 ECU is possible, too.
program. This goes to show that even on Honda's "performance" motors, very conservative assumptions are made about the quality of gasoline used. If you are willing to run high octane gasoline consistently, significant performance improvements can usually be found by tuning the car for the better quality gas. This does bring us to an important point. Tuning is best something done on a dyno that can simulate loads (such as a Dynapack or Mustang dyno). Dynojets are only useful for tuning a much narrow range of operating conditions, namely acceleration at wide open throttle through the rev reange. When a Dyno is not available, something to give an objective measure of how the car is responding is a good second choice. Wideband O2 meters and EGT probes can give you some idea of what is going on. Widebands generally provide more direct information about Air Fuel Ratio, but they are generally ineffective for timing adjustment. EGT probes tell how how the exhaust leaving a motor is, which can be used to infer a lot of information. If Air Fuel Ratio is left relatively constant, most changes in EGTs can be attributed to timing adjustment. Air Fuel Ratios will cause changes in EGTs so make sure you have your AFRs nailed reasonably close to your target before trying to use an EGT to tune your timing. This article in intended as a brief introduction, so enough of that. Don't despair if you don't have access to a dyno, however. Accelerometers (like the G-Spot) measure acceleration forces with fairly good (<1%) precison. If you can record this information as part of your Data Logging procedure, you can do some math knowing the weight of the vehicle and its gearing to come up with horsepower and torque output figures for the car. Again, this method has fairly good precison but relatively poor accuracy. The numbers themselves don't mean a lot, but if you can produce significant and consistent improvements, you have tuned the car better. A final note about tuning tools - the "butt dyno" is a totally inappropriate way to determine how the car is performing - most of the changes you will make to a computer program will be subtle enough that you probably will not be able to "feel" them accurately. The butt dyno has almost zero precision I've had many kids report "very different" results from no real changes to a chip. Also, the butt dyno is much better for detecting rapid increases in torque than consistently more torque. Consistent torque is what makes a car fast, not how quickly torque increases. What this means concretely is that a car may "feel" faster on the butt dyno because it has sharp spikes of torque, but in reality it is slower than a car with a smoother powerband with gradual increases in torque. Beware of most aftermarket "chips": more often than not these programs just dump more fuel and increase timing greatly while doing things like raising revlimiters far beyond safe levels. There are very limited gains to be had from most "performance chips." Tuning not "chipping" generally produces usable, real world gains. That being said, changing the program of a ECU is generally not that tricky. First, it would probably be wise to focus on some basics of how ECUs work so that it is more apparent where we could makes changes to have a positive effect on performance. Most ECUs seem to operate in two modes. In one mode, the ECU is monitoring as many engine sensors as possible, trying to get the best fuel economy. This mode is normally referred to as "closed loop" because it is a closed feedback system. In the other mode, the ECU runs a much simpler routine that is most often engaged at wide open throttle. This mode is normally called "open loop" because it does not continuously monitor sensors and compute fuel correction. Open loop conditions are generally stored in the form of a table where the ECU "looks up" fuel and timing values using a relatively simple algorithm. Modifying fuel and timing tables is the most basic way to retune a car, however it bears remembering that the ECU will be making adjustments to whatever information it has. In most cases, open loop table values serve as base values for closed loop fuel correction routines to adjust, but it is difficult to change the exact behavior of adjustment routines. Problematic closed loop correction routines require an understanding and possibly a re-write of the code running the ECU to be fixed properly. You can completely change the operating characteristics of an engine by changing the fuel and timing tables around. As an example, a PM6 (88-91 Civic/CRX Si) ECU is normally used to run a D16A6, ~100HP. By little more than changing the fuel, ignition tables and the revlimiter, a PM6 can run a DOHC ZC, ~135HP, like it came out of the factory. Additionally, little more than even more
fuel/ignition map changes and revlimiter changes are all that is needed to make it run a B18A/B18B or a B20B! Virutally the same ECU hardware runs a D16Z6 SOHC vtec and a B16A2/A3 DOHC vtec motor - swapping chips will let one motor's ECU run the other motor, and vise versa. In another more extreme example, a friend of mine recently had success running a 2G accord engine with a GM computer! As I hope you have gathered, there is a certain amount of art and a lot of skill/experience involved in tuning a car well. An adequate explanation of how to tune a car perfectly is far beyond both the scope of this article and my expertise. Please, be careful changing your engine's fuel/timing tables understand that timing changes can completely change the operating characteristics of the engine! Please be very careful, especially when doing baseline tunes - you can destroy your engine in seconds with a bad program. Use proper tools (wideband, EGT, accelerometer, dyno) whenever possible. We are now going to assume that you now know what fuel and timing adjustments you need to make, regardless of whether this is actually the case. With that hefty disclaimer out of the way, the tools and methods from this point forwards are going to become a lot more specific:
Hexediting and Raw ROM editing ROM Editors o Ghettodyne (OBD0) o Turboedit (OBD0) o BRE (Ben's ROM Editor - OBD0 Vtec) o Uberdata (OBD1) o Crome (OBD1) Chipping an ECU: hardware o Chips and ROM Burners o Soldering and Desoldering gear o OBD0 ECU Chipping o OBD1 ECU chipping o OBD2 ECU Chipping Troubleshooting
So, you've found the fuel and timing tables in your ECU's program, edit away. How do you interpret all this? Well, first you mut know about the addresses. Each byte has its own address referenced by the left most column (the "offset" column) and the top row. As an example, look to the bottom right corner of the above picture. Notice the byte that has 6f as its value. Follow the row to the corresponding row in the offset column and you will see a 3ef0. Then follow 6f's column all the way up to the F on the top row. Put those values together and you have the address of the 6f byte: 0x3eff. Now what? This data is the binary representation of the actual machine code that runs in the ecu's processor and ROM data that the ECU uses. To figure out what it does you must use a disassembler to convert the binary code/data into the machine code instructions which are more human readable. Most ECUs have a Check Sum routine - the checksum gods must be appeased after any changes to the ROM are made or the car will not run properly. It would take a long time to tune a car if everyone only had hexeditors at their disposal. In many cases, ROM editors are available to assist in the tuning process.
ROM Editors
Remember, anything you can do with a ROM editor can be done by hand with a hexeditor too. Although most ROM Editors are specific to one or more ECUs, most are fairly similar visually Understanding Maps has a lot of pictures and more hands-on explanation of editor-based fuel and timing table adjustment. Most of the concepts will apply to any and all editors.
Ghettodyne (OBD0)
Ghettodyne (available at http://www.ghettodyne.com) is a free ROM editor that was the first to support the PM6 (88-91 CRX/Civic Si) ECU. It is no longer being actively developed. To give you an idea of what ghettodyne looks like:
Turboedit (OBD0)
TurboEdit has since largely replaced Ghettodyne as the most actively developed OBD0 ROM editor. It supports ROMs based off the PM6 and PM7 codebase at this point. Close communication between Team OBD0 and Jason Parker, TE's author, ensure that it supports the latest features quickly. As you
Turboedit forum on PGMFI - editor mainly 8XC154 Development forum on PGMFI - new ROMs and code
BRE (Ben's ROM Editor - OBD0 Vtec) BRE is arguably one of the best editors for OBD0Vtec ECUs, like the PR3 and PW0. It runs under Windows. Hopefully Ben will come by and add more information about it.
Uberdata (OBD1)
Uberdata was the first publicly available ROM Editor for OBD1 Civics/Integras, written by Blake Warner (Uberteg). It uses primarily the P72 and P75 code, but has been adapted to run almost any Honda motor. It has solid boost support, support for the Transtronics Romulator, and recently added support for inline assembly scripting. It runs on windows.
Uberdata forum on PGMFI The Home of Uberdata OBD1 Development forum on PGMFI
Crome (OBD1)
Crome is the first scriptable OBD1 ROM Editor, written by John Cui. Core features are designed for the JDM P30 "203" code, but it has support for many other ROMs to lesser degrees. The new version of Crome (March 04) supports the PGMFI Real Time Programming solution, and has improved boost code compared with earlier versions. It also has a new plugin interface allowing HTML based front ends to scripts.
dozen ECUs I did. Most were simple poor solder joints that were easily fixed, although I cooked two PR3s by not desoldering them fully and ripping the pads + traces off the board. Repairing a destructive soldering adventure like that can be very stressful and difficult. After buying my Desoldering Station, I've fried approximately 3 ECUs out of 200. (and one of those I still think was a bad alternator/voltage reg...) Part of this was certainly practice, but having the right tools made a big difference.
If you are luckier and have an ECU with an external EPROM from the factory, the ECU you have will look more like this:
An OBD0 ECU with an external EPROM is very simple to chip. First, cut all 28 pins with a razor blade or utility knife. BE CAREFUL YOU DO NOT SLIP AS YOU CAN PERMANENTLY DAMAGE THE CIRCUIT BOARD. It is not absolutely necessary to do this before desoldering, but removing the chip will make it much easier, particularly if you do not have a good desoldering station. Once the original ROM is desoldered and removed and you can see through the holes in the circuit board, add a socket for an EPROM and then place the new ROM you have created into the socket.
First, you must de-solder the parts silkscreened in white on the circuit board. Once all the pads are desoldered and you can see through holes for components in the red section above, you need to start soldering in components. No bizarre components are used - everything should be readily obtainable from your local electronics store, Radio Shack, Digikey, Newark Electronics or just about any other electronic parts distributor. Honda was nice enough to label on the board where everything goes. Place the 74 HC373 chip on the board where indicated and solder it in place. R54 should be filled with a 1k to 1.2k resistor(the exact value does not matter). C51 and C52 are 0.1f ceramic disc capacitors(12V or better will work fine). Place a 28 pin socket for the ROM where 27256 is marked. (BTW, spend a bit more money and get the much higher quality machined-pin sockets instead of the cheapy bent metal leaf type.) Once the socket is in place, place a the ROM you programmed earlier in it. Finally, connect J1 with a small wire to enable the external ROM. No changes other than cutting J1 are needed to restore the ECU to its original state. Here you can see a chipped P28 ECU. The person who chipped it used a socket for the 74HC373 as well as for the ROM socket, and used a real jumper instead of just connecting J1 with a wire. Nevertheless, it will give you an idea of what it should look like when you are done:
OBD2 ECU Chipping If you have a OBD2 ECU, you are just going to have to wait or buy commercial Tech Tom gear. It is possible to remove the 66K MCU and replace it with another OTP 66P507 or FLASH 66Q589 (As the case may be) but this is far from trivial. Little is known about OBD2 code. See Chipping OBD2 by Doc
Troubleshooting
At this point, you should have a working ECU with a new program. If you get a solid red light on a OBD0 ECU or a continuous CEL on OBD1 car and the car runs terribly with a very low rev limit and a stumbling idle, you probably have a bad connection. If the same thing happens 30-45seconds after you start the car, you probably failed to pray to the checksum gods. If the car runs weird, try putting a stock program in an verifying that the fuel/timing changes you made were not detrimental.
Conclusion
Hopefully, at this point, you have learned a little about ECUs, how they work and break, and how to modify them. If you have further interest check out the rest of the Wiki, or Further Reading. The ECU is just a tool allowing precise fuel and timing delivery - knowing how to modify the ECU itself is only half the battle to having a well tuned car. Spend the time and budget the money for the right tools to tune the car, not just chip the ECU.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: