Honda OBD0 ECU basics. ���� By Ben Ogle

Most all the OBD0 ECUs you will use are from 88-91 civics and integras. They are, for the most part, very similar to each other so there isn't a whole bunch to say. But I'll give it a shot anyway. I will also attempt to cover some of the basics to chipping and burning/editing your own chips.

Heres the breakdown:
Basics
NON-VTEC ECU's
VTEC ECU's
Chipping Basics
Burning Your Own Chips
Editing
Program Swapping
Program Features
Conclusion

Basics:
All civic and integra OBD0 ECUs share the same plugs. Yep, so you can easily run a civic/crx si motor with a 90-91 integra ecu and vise versa. Plug and play. Look, here are 3 different ECU's:


When wiring for multi point or something you will have to, say, add a wire to A5. Where the hell is A5? Well, A is the big white plug that goes into the green socket (look at the above pic), and 5 is the wire number on that plug. To count the wires you take the plug: point the plug away from you, start at the top left corner, and count in a zigzag pattern. Like this:


DPFI - Dual point fuel injection. Comes on 88-91 civics/crxs that aren't and Si, EX, or Hf.

MPFI - Multi point fuel injection. Comes on 88-91 Si's, EX's, Hf's, and 90-91 integras.

ECU From Comments
Non-VTEC   Most of these can be used on any B18A, B20, or D16/D15, non-VTEC, OBD0 MPFI application.
PM5/PM9 DPFI ECU from 88-91 civics/crxs These suck and aren't good for anything but parts. The 90-91 ECU's are chippable but I don't think anyone has spent any time with them so the programs aren't all that well known.
PM6 88-91 crx/civic Si's and 90-91 EX 5speed sedans All US versions are 5 speed ECU's. Every once in a while I come across a JDM one, and some of those are from autos (which work for 1 wire vtec). Only the 90-91 PM6's have an external EPROM so they are easily chippable. The 88-89 version are chippable but only with a lot of trouble. 90-91 PM6's are cheap (~$40), fairly easy to come by and very versatile for anything OBD0. How to identify a 90-91 PM6.
PS9 90-91 auto EX sedans Just an auto PM6. Good for 1 wire vtec.
PR4 90-91 Integras These come in auto and manual versions. The 5 speed versions go for around $50 or $60 and typically the auto versions are much cheaper (I got one for free a little while ago). The auto ecus are a good option because they are easily converted to manual usage.
PM7 88-91 JDM ZC I don't know much about them. They are similar to a PM6 but have very different programs. I have never had one in my possession.
VTEC   The only things these share with their non-VTEC counterparts is the plugs. They are actually more like an OBD1 ECU than they are like an OBD0 non-VTEC ECU. They can be used in a few applications like (obviously) on a B16 and even on SOHC VTEC swaps like the D16Z6 or Y8. There are a few problems using a PR3 or PW0 on D16s. One problem is the 2nd O2 sensor. You will either have to add another oxygen sensor to your header or get the ECU chipped with a rom that disables BOTH O2 sensors. The other prob is that PR3's and PW0's use a knock sensor and the D16s do not, so you will have to get a chip with the knock sensor also removed.
PR3 89-91 integra XS-I's and RS-I's Come with 1st gen B16a swaps. They typically go for around $150.
PW0 Most from 88-92 civic/crx SiR's Made for B16s just like the PR3. These are a lot like the PR3's.


Chipping Basics:
There isn't a whole lot involved here. You pretty much just de-solder the old chip (whish is the hardest part), then solder in a socket. You then put your new or stock (if you want) chip in the socket. Pretty easy, eh? For a step by step how-to go here. If you get it done by someone, don't pay them more than about $80. And if you pay that much, make sure they give you a flash chip so you can reprogram it more than once. When I do it I charge $70 and I reprogram the chip to whatever they want, whenever they want.

Burning Your Own Chips:
First thing you will need is a chip burner. I, and many others got the batronix Eprom programmer which you can find here. It is around $70 with software and works great.

Then you need a chipped (or maybe just socketed) ECU. Which one you choose is up to you and depends on your application. I would suggest buying a non-molested ECU and chipping it yourself.

Next, you need some chips. The kind of chip you have to use is called an "Eprom" (electronically programmable rom) chip. There are a few different kinds of eproms that people use.

Chip Comments
27C256�� Your average rom chip. They are the cheapest and most are one time programmable (OTP) which means you can only program them once. They also come in a UV erasable version which are identified by a clear window on the top of the chip. They can be reprogrammed more than once but need to be erased first by way of, you guessed it, UV light. It takes a really long time by sunlight so people typically make their own erasers.
27C512�� These chips are double the capacity of the 27C256's. That means they can hold up to 2 programs which can be switched between if you install a switch in the right fashion. If there is no switch then the ECU will run on the higher of the 2 banks (so the last 32k of the file, or the 2nd program to be put on).
28C256�� These are electronically erasable but a lot of people have problems using them in ECU's so I try to stay away from them.
29C256�� These are flash chips. They are IMO the best chips to use in our ECU applications. They are easily over written by your burning software which makes them versatile and very easy to use. They are usually around $5 a chip.


After you have the chips you want, you have to have something to put on them so they will work in your ECU. These programs can be had by a couple of different methods.

- Your eprom programmer can read chips. Yay! This means that any chip you pull out of an ECU (provided you didn't fry it) or get off ebay or something can be read and made into a rom file (also called a "bin file").

- Go to www.pgmfi.org in the development then rom dumps section of the forum. This is a forum where people post programs they have pulled from various chips, stock and otherwise.

Editing:
So you can read and write your own chips and make them work in your car. Now what? Now you change stuff to suit your needs. That's what chipping your own ECU's is all about, right? Now, there is the easy way to do this and the hard way. I would urge you to learn the hard way first, or at least a little bit of it. It is a really good thing to at least understand.

Hard way: Take the bin file of your choice and open it in a hex editor (I use winhex). It will probably look like a bunch of gibberish at first but will make sense after a while. Inside that gibberish is info for your fuel/ignition maps, revlimits, vtec points, idle target values, sensor info and some other crap you might want to change. Each one of these aspects is at a different location I the hex file. These locations are really hard to find yourself but people have found most of them and have posted them on the pgmfi.org forums.

What you essentially do is take the hex value at the location of the thing you want to change, convert it to decimal, run it through a formula which gives you a number you can understand, change that number to whatever you want, run it through another formula to get back to the decimal format, convert that to hex, then put it the location you took the original value from.

Lets do an example, shall we?

Ok, so you have some bin (maybe an OBD0 PR4 program) that has a revlimit value at 109Bh (or 0x109B if you like). Now most revlimit values are a 2 byte deal, so we use the value of the location as the high byte and the value of the location +2 (in this case 109Dh) as the low byte. If the value of the location 109Bh was 01 and the value at 109Dh was 27, we would put them together and get a hex value of 127h. Now we convert this number to decimal:

127h = 295dec.

Then we run it through a formula. The revlimit formula for OBD0 non-VTEC ECUs is:

rpm = 1920000/dec value.
So 1920000/295 = 6508rpm.

Cool, eh? Now if we wanted to change it to 7000rpm we would do the reverse.

1920000/7000 = 274dec.
274dec = 112h.

Now we split up the final hex value and put it back into the original location. So the value at 109Bh is still 01 but the value of 109Dh has got to be changed to 12.

The easy way: A few people have written software to do this math for you automatically. They are free to use for PERSONAL use. You can get them in the forum called "software" on the pgmfi.org site. I have written one called BRE (Ben's ROM Editor) that supports the PM6, PR4, PS9, PR3, PW0, P28, and P30 ECU's and a few of the special roms people have written. Have fun, but I urge you to learn what the editors are really doing.

Program Swapping:
Some of the roms (or bins) are interchangeable between ECU's. You can use PM6 bins in the PM6, PS9, PR4, and maybe even a few more. Also, PR4 bins work in all the ECU's listed in the last sentence. This is nice because sometimes you find a bin you want to use but it is based on a different ECU than you are using. Unfortunately that is really all the interchangeability that happens in the OBD0 world. As similar as they are, the PR3 and PW0 ECU's cannot share programs. Even the euro and JDM PW0 programs aren't interchangeable.

Program Features:
Some of the folks on the pgmfi.org site are brilliant and have added features to existing rom files. These features are mainly limited to the non-vtec ECU's (all the good stuff is PM6 based). Features include but are not limited to:

Launch control - Also called full throttle launch. This feature sets your revlimit low (like 4k or something) until you reach a certain speed (generally 6mph). This limits wheel spin. I net 2.2 60's at the drag strip on azenis with the launch control at 3k in my B20 EF. I just dump the clutch and it goes.

1 wire VTEC - This feature kicks ass. It only works in auto PM6s and PS9s but damn does it work well. It activates VTEC at a predetermined spot through the A8 pin (same as normal OBD0 VTEC ECU's, but is the "auto lockup solenoid" on the auto ECU's). Its called 1 wire vtec because all you have to wire is the A8 pin to the VTEC solenoid. No need to wire the pressure switch, knock sensor or the 2nd o2 sensor. This feature was originally developed for D16 VTEC swaps but can be used on a B16 as well. The only draw back I see is that the program still only uses 1 fuel and 1 ignition map. See, the PR3 and PW0 have 2 different fuel and ignition maps, one for vtec, and one for when you're out of vtec. So with the 1 wire vtec there is just a loss of precision. SFW?

Boost maps - That's right. You can boost without pissing off or tricking the Map sensor. The early boost maps just scaled map sensor voltage and were sort of sloppy (pretty large loss or precision) but just recently the great people over at pgmfi.org came out with a bin that has separate maps for both on and off boost. That means when there is no boost you are running off 1 set of maps (a fuel map and an ignition map) and when the boost comes on you are using a whole different set of maps. Talk about kick ass!

Data logging - It requires some hardware mods to your ECU but I have read that the mods aren't all that hard to do. I, however, have no experience with it.

There are some other smaller features but I am not going to talk about them.

Conclusion:
Hopefully now you are a little more educated on the subject of Honda ECU's. This stuff is just scratching the surface, though. If you are interested and want to learn more read this intro to chipping article or go over to pgmfi.org or wiki.pgmfi.org and read everything. But I have to ask you to not become a leacher. If you are going to take from that site please find some way to contribute. Those people have a ton of time into finding info, writing programs, and all the other stuff that is posted there. So, please, show some respect and contribute.

Home