Swapping your D14A3 or A4 ECU to an OBD1 type
This article shortly describes what I did to go from SFi (Simplified Fuel injection, almost like DPFi (Duel Point Fuel injection)) to MPFi (Multi Point Fuel injection). One can only perform this swap if the IM (intake manifold) is already swapped (or do it simultaneously). This is because the RACV (Rotary Air Control Valve) on the TB (Throttle Body) no longer can be used and has to be replaced by an IACV (Idle Air Control Valve) on the IM. The reasons for doing this swap are easy: Reason 1: you get 4 separate controlled injectors instead of 2 pairs of injectors, so it improves overall efficiency of the engine. (On the stock D14A3/A4 engine injectors 1 and 4 are connected together and 2 and 3 are. That is basically what makes it SFi). Reason 2: nobody I know knows how to reprogram the stock D14 ECU, but the OBD1 ECU’s are very well known. So adjusting the engine management will be easy and you do not have to piggyback it (which in my opinion is the bad way of getting some hp). Reason 3: adding VTEC in the future is easy.
Note: before doing the OBD1 swap you need the IM swap!
Extra note: ok an OBD1 swap can be done without IM swap if you really like to know. I did it once on an EJ6 in 2014, the in-its-time-pretty-famous Jamex Turbo Civic. The IACV was placed on the original TB RACV position using a custom flange I made.
Ok, lets get back on track to OBD1 swapping. There is a hard way and an easy way to do the OBD1 swap, most of this article is about the hard way.
I will try to tell every detail of this swap at the moment. However, I might have missed something. So far I know I am the first to have done this swap (and had a good result). Since I was the first to do this correctly, I had not all information there is today. In retrospect, I did it the though way. But at least I understood the complete wire loom of my car’s engine. For everybody having an interest in the EJ9 and how I converted it to OBD1, read the entire article. But when you have low skills on wiring and you are in a hurry, scroll way down for the incredible easy and not so expensive method to do it OEM style plug and play.
-Distributor of a D15B7 engine (TD-41U).
-IACV from an OBD1 engine if you did not have it on your IM already.
-P06 ECU preferably (with stock 190cc injectors chipping is required).
-Conversion harness (see instructions).
-Make sure you have extra wires and connectors for the distributor and IACV.
-240cc injectors to replace the 190cc stock injectors, 240cc injectors might run well with stock P06 ECU but better chip it anyway.
-Complete D16Y7 TB (it is the smoothest 55 mm TB I know and will lighten the job, found this out years later though).
This article is based on the conversion harness I made. It has an extra 10 wire connector for the 2 extra injector wires, 3 extra heated lambda wires and 5 extra distributor wires. Yes 5 that is, so you need actually to run 10 extra wires through the firewall? No, 2 are already there, the injectors. And the heated lambda is not strictly necessary. You can keep the stock lambda but the ECU must be reprogrammed for it or it will throw a code 42 and it will run in safe mode. AND that SUCKS! I can tell from experience.
Below the ECU pinouts of a standard OBD1 sheme is shown and the pinout of the D14A3 and D14A4 engines are shown (P3X and P3Y, so indeed the 75 bhp and 90 bhp versions have different ECU’s). The OBD1 and P3X/P3Y pinouts vary between engine and year of build in colors or functionality, but the vital information is there. For the record, there are more cars over the world which incorporate the P3X/P3Y type ECU, so for those people the pinout may work as well.
The A and D connectors for both type of ECU’s are the same. However, the way the pins are numbered is different! I think it has to do with the transition from OBD1 to OBD2a. Furthermore, the fact that the connectors are the same also suggests that all pins can be relocated between connectors A and D to the OBD1 positions and the B connector from OBD1 can be added to the system to make a complete OBD1 conversion. Indeed this can be done instead of fabricating a conversion harnass. First I started with the harnass so errors could be traced and reversing the process was quite easy when it would be a total failure. After a few months of driving succesfully with the harnass I wanted to clean things up a little and instead of using a harnass I relocated all the original pins (sometimes pin sizes differ and a bit cutting and soldering is needed, you’ll find out yourself).
ACC – A/C relay
ACS – A/C switch
ALTC – Alternator relay, for control purposes, not present on all ECU’s and can be ignored
ALTF – Alternator switch
BKSW- Brake switch, for control purposes, not present on all ECU’s and can be ignored
CKP – Crankshaft position, (P)ulse or (M)ass, gives several pulses (~20?) during each cam shaft rotation
CYP – Cylinder position, (P)ulse or (M)ass, gives one pulse during each cam shaft rotation
DLC – Diagnostic connector, communication signal to the 3 wire connector next to the SCS connector
ECT – Engine coolant temperature
FANC – Fan relay, for control purposes, not present on all ECU’s and can be ignored
FLR – Fuel relay, 1 is always present, 2 can be ignored
IACV – Idle air control valve, controls the 2 wire type IACV valve
IAT – Intake air temperature
ICM – Ignition pulses, 1 is always present, 2 can be ignored
IGP – Battery feed, only active when key is turned
INJ – Injector, the number refers to the cylinder used (1 is on the side with the belts)
LG – Ground for battery circuit
MAP – Manifold absolute pressure
MIL – Motor indication light, this one gives the control engine light (CEL) signal
PCS – Control solenoid, this one is for the small black cylindric valve on the back of the IM
PG – Ground for battery circuit
PO2H – Primary oxygen sensor heater, connects with the ground of the car to activate the heater
PO2S – Primary oxygen sensor signal
SCS – Service connector switch, checks if the SCS connector is hot wired (for reading engine error codes)
SG – Ground for 5V circuit, 1 is for the MAP sensor, 2 is for the other sensors
STS – Starter switch
TDC – Top dead centre, (P)ulse or (M)ass, gives four pulses during each cam shaft rotation
TPS – Throttle position signal
VBU – Back up battery feed, always active (unless battery is removed)
VCC – 5V feed, 1 is for the MAP sensor, 2 is for the other sensors
VSS – Vehicle speed sensor
VTM – Oil pressure switch, only -but not always- present on VTEC equiped vehicles
VTS – VTEC solenoid, only present on VTEC equiped vehicles
Nomenclature changes from OBD1:
ELIMA- Identical to ELD from OBD1, electric load detection, not present on all ECU’s and can be ignored
IACV – Idle air control valve, controls the 3 wire type IACV valve, (N)egative and (P)ositive control
IGPLS- Identical to ICM from OBD1
IGR – Engine speed, not used in OBD1 for the ECU
IMO – Checks IMO code of the key and activates FLR if correct, OBD1 misses this safety!
INJ – Injector, the numbers now refer to the pair of cylinders connected
O2S – Identical to PO2S from OBD1
PSP. – Power steering switch, not present on all ECU’s and can be ignored
TDC – Top dead centre, signal type is not identical (LED instead of coils), but can be used instead of TDCP from OBD1
TXD. – Identical to DLC from OBD1
Making the conversion work:
The basic of the conversion is very simple, relocate the wires with identical functionality from the original position to the OBD1 position either using a harnass or by repinning directly. Signals not supported by OBD1 can be removed. For ¾ of the wires this process is straight forward. However there are 4 issues that require more attention. These issues are injectors, heated lambda, ignition and idle air control respectively. Those issues are documented further on.
For the conversion harnass it means that an extra connector (or at least some wires) is needed for the following signals which are not supported by the original D14A3/A4 engine harnass:
9: additional IGP2 (split!)
10: additional SG2 (split!)
The splits mentioned above at numbers 9 and 10 are needed for the heated lambda sensor. For information on this sensor, see a few sections below under ‘heated lambda’. Here I set out why and where these splits are needed. In all 6th generation Civics, one or two big splitter plugs resides under the IM. In these splitter plugs, several circuits are split into multiple wires. Circuits IGP2 and SG2 are splitted there, as well as some others (grounds PG, LG?). Since the heated lambda sensor has 4 wires of which 2 from splitted circuits, cars equipped with a heated lambda are likely to have an additional IGP2 and SG2 split under the IM, which misses in our EJ9 looms. Therefore, we have to construct our own splits. Personally I prefer splitting near the ECU so you can make sure the correct wire is splitted.
My prototype harness was build from yunkyard parts, I was very lucky to get my hands on a free D14A4 ECU that had been flooded (thnx CRX2). The harnass is now located somewere in France -Thomas, I hope you still enjoy it- and looked like this:
Without the use of a conversion harnass you should work like Leo, here you see his OBD1 conversion re-pinning connectors A and D and adding a ‘new’ B-connector.
To make work a bit more practical remove the engine wire harness from the fire wall. There have to be 8 extra wires pulled through the grommit shown in the picture. Three of them are for the heated lambda I used and the other 5 are for the ignition. Use different colors if possible, at least mark all the wires. Hopefully you people looking at this mess don’t get confused. I am just trying to tell were to add the new wires to the engine wire harness under the battery. I did remove the stock grommet and stuffed al extra wires through it without cutting. In a later stadium (not needed for this OBD1 conversion) I even pulled through a Zeitronix lambda wire through there, but cutting the grommit was required this time.
The injector issue is as follows, the engine has 4 injectors. The stock D14A3 ECU has only 2 signal wires going to the injectors. A normal OBD1 ECU has 4 separate signal wires going to the four separate injectors. That is what we want. On the stock D14A3 and D14A4 the 2 wires from the ECU are splitted in 2 by 2 is 4 wires to the 4 injectors. This splitting is done in the so-called splitter, found above the passengers feet. A very dark picture of my splitter during the process is shown below:
The injector splitter is very simple, 3 or 4 wires are connected together internally. The splitter splits the 2 wires from the stock ECU into 4 wires that run to the 4 injectors. The folowing diagram shows the groups that are connected together in the splitter.
So from the splitter, 4 wires run to the engine and no additional wire has to be pulled through the firewall for the injectors. When building a conversion harnass, I suggest the following to make it work:
-Connect OBD1 INJ1 (Brown) to the original D14 INJ14 signal towards the splitter (Brown/Yellow).
-Connect OBD1 INJ2 (Red) to the original D14 INJ23 signal towards the splitter (Red/Blue).
-At the splitter, disconnect INJ3 (Blue).
-At the splitter, disconnect INJ4 (Yellow).
-Now connect OBD1 INJ3 (extra wire No. 1) to the disconnected INJ3 wire going into the engine bay (Blue).
-Now connect OBD1 INJ4 (extra wire No. 2) to the disconnected INJ4 wire going into the engine bay (Yellow).
This way should give you 4 good running injectors. The wires left on the splitter should be insulated or they could trigger spontaneous fuel injection, unlikely but don’t take risks.
The difference between the stock 1-wire and OBD1-type 4-wire lambda is the heater. The heater generally improves accuracy of the lambda and therefore fuel economy. When at full throttle the lambda sensor is not used, so the maximum performance of the car is not influenced. Normal OBD1 ECU’s require a 4-wire lambda, or they will give error codes. This can be omitted if the ECU is chipped, but I advise to install a 4-wire lambda anyway.
The following 3 wires have be pulled through the firewall:
-PO2H (extra wire No. 8), activator of the heater element, ground activates
-additional IGP2 (extra wire No. 9), feed of the heater element
-additional SG2 (extra wire No. 10), ground of the lambda sensor
Lambda’s with 1-wire use the exhaust as ground, 4-wire lambda’s feature a separate ground and are therefore also more accurate. The signal cable (PO2S) of the 4-wire lambda is connected to the original signal cable (probably White) of the original 1-wire lambda. So this gives 4 wires total (PO2S, PO2H, IGP2 and SG2) that have to be connected to the 4-wire lambda.
The following common 4-wire lambda sheme’s are known to me:
-OEM lambda; PO2S (White), PO2H (Black), IGP2 (Black) and SG2 (Green)
-Imitation lambda; PO2S (Black), PO2H (White), IGP2 (White) and SG2 (Grey)
-Imitation lambda; PO2S (Blue), PO2H (Black), IGP2 (Black) and SG2 (White)
Make sure to connect the correct wires with each other and you should have a working 4-wire lambda. The PO2H and IGP2 wires from the lambda always have the same colors, because they are fysically identical to each other.
So let’s continue to the distributor. The stock distributor has 7 wires. Only 4 of them can be reused as far as I know. To get the new distributor with 9 wires running, 5 new wires have to be added. That means 5 wires have to be pulled through the firewall. Those five are already mentioned, I will repeat them here:
-CYPP (extra wire No. 3)
-CYPM (extra wire No. 4)
-TDCM (extra wire No. 5)
-CKPP (extra wire No. 6)
-CKPM (extra wire No. 7)
The stock D14A3/A4 distributor is shown in the following picture and diagram. In the diagram I have assigned letters to the seven wires, the black ones can be kept and the grey ones should be discarded.
The D15B7 distributor I used is shown in the following picture and diagram. Again I have assigned letters to the wires, this time seven plus two. The black ones can be connected to the old D14A3/A4 harnass wires with the same code (and TDCP may be connected to TDC) and the green ones with the asterix* should be connected to the new wires pulled through the firewall. When done correctly the distributor should work fine:
RACV to IACV:
First of all the RACV is useless anymore, so disconnect it. You could use the TB from an OBD1 engine but for me it was pointless. I do not want to have the cold idle valve system at all which is on those. Later I learned that a D16Y7 TB would have worked well, because it has no idle valves on the TB itself. The OBD1 IACV on the manifold will have two wires. You can use the old RACV wires, the connector with 3 wires should be replaced by a connector with 2 wires. You need to throw away one wire of them, I recommend throwing away the orange wire and connect the black/blue wire to the OBD1 IACV signal. The yellow/black wire goes to the yellow/black wire of the IACV.
The wiring should be ready by now. Put everything nice in place. Swap the injectors if needed. Connect the ECU and see if the car gets running.
And the result finally came in, 116.4bhp@6648rpm and 142Nm of torque at the bottom… (nice results yes, but later I found out that the timing of the cam was 1 tooth advanced… with an adjustable cam gear and some testing on the dyno it might have scored 120+ bhp I assume, but now I am typing this text the engine already is much more powerful due to the VTEC head I installed quickly after.
Tuning your OBD1 swap:
Getting the best out of your OBD1 swap is done in my experience by the following. Start out with P06 base maps; those originate from the 102 bhp D15B7 engine. You or your tuner should fit the car with a wideband lambda sensor. The fuel maps should all be approximately around AFR 1:12-13 at wide open throttle (WOT). Most Honda engines are not really sensitive to the fuel mixture in that region, and it gets about the max hp. Don’t be surprised if the fuel values end up higher than the stock 1.5 litre maps, you also have more hp to burn them for! This happens since a good upgraded 1.4 engine breaths better than a stock 1.5.
Leave the ignition maps stock. But adjust the ignition timing to 16 deg BTDC, since this is the normal timing of OBD1 engines. The marks on the D14A3/A4 crank pulley are 10, 12 and 14. So you should time the ignition (using a stroboscope) a little bit before the 14 deg mark passes. Only (fine) tune the ignition maps on a dyno please, it’s not worth street tuning ignition maps on the road since only very small changes from stock are needed to get maximum performance in general. And in the case of higher compression ratios and the loud exhausts found on many Civics, it is hard to hear detonation inside the car. It costed me a mini-me once…
The incredible easy and no so expensive method:
Nowadays some very large shortcuts can be made by throwing away the original EJ9 engine loom. Instead search for an EK3 OBD2a engine loom (Civic VTEC-E 96-98). This looms fits on our engine and interior plugs, comes with VTEC equipped and after market conversion harnesses can be bought for it. So the section called ‘conversion harness’ till ‘RACV to IACV’ can all be skipped as far as the electrical wiring goes. As a bonus you could use D15B7 dizzy or even go for the EK3 dizzy. The last will fit straight away, but the first one can be connected with a dizzy conversion harness, readily available these days. That is awfully easy compared to the rest of my write-up.
Just ask anything you need to know and I might help you out or improve this article.