X19 + K20 Engine Swap Part 3

We Have Ignition?

Ok. I am really seeing the light now. With all of the mechanical bits in, I start to focus on the fuel and electrical. It makes sense to now do the engine side harness and stock harness to the rear lights. I don’t need to get at the wiring beyond this point and I still have room to maneuver wires here and there.

Probably the easiest part of the engine swap was/is the electrical work. That is because you can almost follow the recommended wiring as suggested by Hondata to the letter. The great part is their wiring doesn’t require their k-Pro ECU modification either. If you are opting to go with the k-Tune immobilizer override this will work too.

Hondata K20 Engine Harness Swap Wiring

For the most part, the Hondata wiring diagram worked, however I had to make some changes in order to merge the Fiat electrical with the k20 ECU and wiring harness. Here is a slightly modified diagram (I will re-draw/update at later time to clarify some components further).

Modified Hondata Wiring Diagram

You can see, I didn’t use the “brake switch” (e22). Not sure what that was for actually. I also routed the stock starter signal (that would feed the X19 starter solenoid) to c101-16. I routed the backup lights signal output from c101-1 (12+) directly to the stock backup lights. I plan to change this to a relay, letting c101-1 to switch power 12+ directly to the lights. Right now, the signal directly from the engine harness doesn’t appear to be constant and I get a flickering light. Possibly I need to check my grounds as well. The VSS output from c101-3 (also from a18) is fed directly to my Marshall adjustable speedo gauge. A return line then must be sent back to e25. Without this, the VTech would not engage nor could I properly calibrate the speedo gauge.


I also am not using ANY of the engine “light” signals, like “charge” “oil”, etc. The charge signal is capture directly from a 12+ coming from the stock wiring harness and feeding a custom digital readout on the stock cluster. I am getting oil pressure and pressure switch (dummy light) via custom manifold I installed using Fiat sending units. That is a separate harness mentioned below.

Custom Fiat Cluster

At first, I decided to go with the K-tune immobilizer override. I thought this would be the best bang for the buck and save me some $ getting a k-Pro upgraded ECU which can be costly. The immobilizer was like $30.00 off eBay. Pretty straight forward install; it just interrupts a line or two and connects to engine harness. Not too long after I found a complete K-Pro III converted ECU. Much nicer 

K-Tuned Immobilizer

The remaining wiring for the engine to run is made up mostly of the k20a2 (RSX-s) engine side harness. By “engine side” I am referring to a single harness that will connect to nearly all of the engine components (oil sender, ECU temp sender, v-tec components, etc). Additionally, a separate small harness feeds the o2 sensor and oil sender(s) as well as the backup lights 12+. A single wire runs directly from the custom temp sender to feed the Fiat X19 stock engine coolant temp gauge. Lastly a single wire feeds 12+ to an external fuel pump.

The rear and rear side tail lights (running lights and brakes) and fuel tank sender(s) use the stock Fiat X19 wiring harness.

With all of the electrical work done, I went back to the cooling system to finalize the plumbing and hook up all of the lines. The cooling system I opted to use was based upon what I have seen work with other engine swaps, both X19 and Lotus’. The geometry is somewhat simple; 2 lines that feed the radiator (in/out) 2 lines that feed the heater core (in/out) a single bypass line that works with a 3 point external thermostat and 2 lines that feed in and out of the overflow tank. This ensures coolant is always present and circulating through the engine.

Regardless, this works very well. The only component I am not extremely excited about is the external thermostat. I used a Lancia Beta thermostat as it has the proper opening temperature and the configuration fits the cooling line geometry. However, it is a single non serviceable unit and so when it fails needs to be replaced, is hard to find and can be pricey.

Custom Water Pump Outlet and External Thermostat


Next up was the fuel system. Since I was converting an X19 that had originally ran carburetors, I needed to swap out the fuel tank for a later FI model X19 version which use gravity fed external and return fuel outlet/inlets (on the bottom of the tank rather than the top). However I failed to test fit the engine cradle WITH the FI tank installed. Well, it didn’t fit. So option B was to have the original tank modified and add an outlet at the bottom of the tank that would clear the cradle, suspension and other ancillary bits under the car.

Custom External Fuel Outlet

NOTE: There is a problem with this application of an originally carb’d car fuel tank. The carb tanks do NOT have an internal baffle of any kind to help with surge issues and fuel pressure loss due to fuel moving away from the lower outlet. The FI fuel tanks do contain a baffle and are a better option/solution. Otherwise, you are at risk of starving your fuel pump. I plan to install a FI tank no too distant future – other fix would be to insert a small surge tank between the fuel tank and fuel rail.

Now the fuel lines would feed out from the bottom to the external fuel pump, then return under pressure to the top of the tank.

I used a stock FI Fiat X19 fuel filter (farthest left in the pic above), and an aftermarket fuel rail on the engine. As shown in the pic, I originally used a relatively cheap Bosch fuel regulator. However I quickly discovered it could not support 50 psi I needed for the engine. I upgraded later to far better adjustable unit. Found on amazon.


The stock fuel rail will work with some modifying. However to do the mods right, you need to have it welded in a few spots. Also the stock k20a2 fuel rail although fine for stock injector fuel supply, you should consider upgrading if you go with bigger injectors. Thinking ahead with the chance of a boosted engine, I opted for an aftermarket one.

The fuel rail can be had (dime a dozen) on eBay. You can pay the big bucks and get a K-Tuned Fuel Rail. I went with all Russell fuel line adaptors. With the carb’d tank, I ran a fuel line from the custom outlet at the bottom of the tank, up the driver’s side frame rail and into a high pressure fuel pump. I used an Airtex pump capable of up to 75 psi – the K20a2 should be fine with approximately 50 psi. From there into the filter then directly into the fuel rail, and back into the tank via the FPR.

Geometry For Fuel Lines (using Bosch FPR, later swapped to Aeromotive)

This works great. I later tried some different fuel vapor setups, including the FI X19 one. In the end, I went with a charcoal can that takes a line from the tank then feeds back into the air intake filter.

Detail Fuel Vapor Line Return.


This pic is just to show the vapor line. You can see I am running the filter through the side vent. More on this later…

So now I am ready to test my install, at least I can test my electrical wiring and crank over the engine.

All good! Checked oil and other fluids and time to test starting and running the engine…

The typical little leaks resulted, the coolant lines of course being the painful ones to fix as they are buried behind the engine. The custom large panel door was critical here. Fuel lines were ok, but I did have to adjust the pressure and tighten up one line on the fuel rail. Once I had it running, I then moved onto burping the cooling system and testing temps, etc.


Everything working as expected. The fan cools the radiator and engine coolant temps are great. I had installed an aluminum radiator a few years back from Vick Auto.

After this, it was just a matter of installing the custom cluster (pictured above). MWB suggests using Marshall electronic gauges and thats what I went with. I reached out to a member on xwebforums.org Bob Brown (user: BBROWN) who is well known on the Fiat X19 forum as a electrical guru and has happened to have done some (or all?) of the custom gauges for MWB k20 swaps. As it happened, he had a custom gauge all ready to go! I had it installed in no time.

You can see the gauges are BRIGHT – Bob replaced the stock back lights with LED. Looks fantastic at night (or day). The stock US version X19 clusters come with a battery charge gauge on the far left. However I wanted an oil pressure gauge in it’s place. Bob sourced a euro version cluster which do come with an oil pressure gauge, however only a dummy light for voltage. He added an LED readout for voltage.

I then needed to take the car for a drive and calibrate the speedo gauge. Just needed a GPS. I used my iPhone with an app named “Speedometer”. Just drive the car a single mile @ 60MPH and your done. Easy! Love the Marshall gauges.

After some shakedown drives, I quickly discovered the stock ECU and K-Tuned override wasn’t going to cut it. So I installed a Hondata K-Pro ECU I had sourced already. The wiring was already done so it was just a swap. To program the ECU, you need Hondata’s Kmanager application. You can quickly install any number of custom calibrations that come pre-set in Kmanager. I tried a few just to get my head around the software. But I knew I needed to get the car tuned by a pro. I went to DNR Performance in Hayward, CA – just a trip over the San Mateo bridge for me. Awesome guys. We found at the wheels the car had about 186 HP. We were able to get another 11 HP with some tuning and also get a nicer power curve and much higher torque. There is more in this engine I am sure, but I was happy with the tune to 197 HP.

Update – June 19th, 2015

I recently have been sort of struggling with some cooling line issues. I honestly was surprised at how easy it all came together originally, the car would never get close to overheating or anything. But, of course the weather has been rather cool this winter and spring and it wasn’t until the temps started to rise that I found some issues. The first being water pressure is very high in my setup. A stock fiat generally have high water pressure, but I think with the k20 engine and configuration I use, it has risen a little higher. Makes sense of course seeing it is a larger engine, etc. This led to a hose popping off at a critical juncture a couple of weeks ago and overheated the engine to 226 degrees. After a fix, then a another failure (general same location, but temp never passed 216) I modified the cooling line geometry some, some longer custom hoses, etc.

The second problem is now the fan cycle and cooling the engine at hot idle. The X19 radiator I use is a custom aluminum system built for racing and should be very efficient. For the stock x19 engine, it works quite well. However I find it doesn’t work quite as well for the k20, at least at idle. The radiator thermo switch to enable fans comes on at 190 degrees (at the radiator) however, the engine at this point shows 195+degrees, typically 197 degrees (on a very hot day). I was looking in kManager and saw there was a protection setting that would force a radiator switch signal at a preset temp value. I thought this would be a good way to add a backup system and help with engaging the fan sooner on a hot day. I found the pin in the c101 harness #7 that provides “fan control” signal – wasn’t sure if it was the correct one, so I did some testing by setting the Overheating Protection variable lower than engine temp and tested pin #7.

#7 of c101

It returned a low amperage negative (-). My multimeter could pick it up by testing continuity. Pretty useless signal on it’s own, so I needed to step it up to properly use it. The x19 radiator sender switch simply uses a completed ground to enable the relay that feeds the radiator fans. I decided then the easiest and least intrusive way (on wiring, etc) to include the kpro signal was to convert the low amperage signal to a chassis ground. I added a standard relay to the rest of the ECU related wiring, and fed a signal from pin #7, a chassis ground, a 12+ to the relay and an output. Here is the configuration I used:

Cooling Fan Backup Relay

I then ran a line (from 30 on the relay) directly to the completed side of the cooling fan sender/switch. This should not interrupt the normal operation of the temp switch.

I ran some tests by adjusting the temp signal in kManager and everything seems to work ok.

kManager Settings Cooling Protection

kManager Settings Cooling Protection