Converting A Kawasaki ZG1000 from carburetor to Electronic Fuel Injection (EFI).


Scope and Purpose:

The main thing I want to achieve from this project is to make it as simple as possible so that anyone with average skills can replicate it without too much difficulty. I don't want to invent or fabricate anything that the average person cannot replicate. I also want to keep the bike engine as close to stock and be easily changed back to stock if necessary. Those are the main goals, simple and reversible. 

This project involved a lot of invention, problem solving, and trial and error. I will skip those details and omit the paths that did not yield results.

On a previous project I removed the carbs and I built a manifold to feed the cylinders. It was a nightmare fabricating a manifold and runners for a V4 motorcycle.  This time will be different. I am not going to fabricate a manifold at all but I will use the existing carbs as throttle bodies and inject directly into the throat of the carbs of each cylinder.

For crank position I am going to modify/replace the existing spark timing wheel and add some teeth to it.

Here are major milestones to achieve.

1. Design a method to deliver fuel to the carburetor that is acting as a throttle body.

i.                    Place the injectors directly behind the carbs and inside the air-box similar to a formula one racer.

ii.                  Find an inline fuel pump that can operate at 12-volts and produce a minimum of 50 psi

2. Design and cut a 36-1 tooth timing wheel. (36 teeth with one missing tooth) To replace the stock Kawasaki timing wheel. The missing tooth is a timing mark indicating a fixed point in the revolution that is a predetermined distance (degrees of rotation) from the TDC of the first cylinder.
3. Design/create/adapt a throttle position sensor to fit the existing carburetors. This sensor will be used by the ECU to determine the position of the throttle.

4. Find/use a standard automotive air temperature sensor and place it in the air stream into the air box.

5. Characterize the resistance of the Kawasaki coolant temperature sensor over the operating temperature range for use by the ECU’s fuel and ignition calculations.

6. Purchase an O2 sensor with a wideband controller and find an appropriate place to install it.

7. Create/purchase various harnesses, connectors.

8. Ignition. 

9. Choose an ECU (controller).


Item 1:  FUEL

Find a suitable size injector, fuel pump and concoct the plumbing and wiring needed to supply fuel to the injectors.

·         Any fuel pump capable of 50psi will work, but preferably about 60-70 psi.

·         An Adjustable fuel pressure regulator with gauge.

·         Fuel Filter, fuel hoses, clamps.


The fuel will need a return line for excess flow. This can be routed back to the tank using the vent on the rear of the standard Kawasaki gas tank. BUT IMPORTANT, that vent exits the tank just under the fill cap. Gasoline pushed back into the tank from the fuel pump will overflow from under the fill cap. It is necessary to drill out that connection.


By drilling straight down and again at an angle toward the front, I put two holes in the vent pipe inside the tank. This will allow excess fuel from the pump to circulate through the tank.  Any pressure build up in the tank when sitting idle will be quickly consumed when the pump is next turned on.


Selecting and mounting the injectors.

The original plan was to place the injectors in the top of the carbs in place of the slider.

Nylon insert to place into the top of the carb to replace the existing vacuum diaphragm and needle.

After several design iterations I came up with this sleeve to insert into the top of the carb.


. However, there is not enough room above the carbs to allow for the sleeve, injector and plumbing.  


 A friend remarked “why not do it like a formula 1 race car”. I decided on this approach.  Mount the injectors over the carb throats, inside the airbox.


I chose the injectors and fuel rail of a ZX14R to use in this project. The spacing is close to the same as the carbs and the fuel flow rating is within reasonable range to feed the 1000 cc engine.


I purchased a set of injectors with fuel rail used from a 2013 KAWASAKI ZX14R on Ebay.

I used a PVC cutting blade on my jig-saw and it produced a very smooth cut. When I was finished, I can put the two halves together and barely see where it was cut.


 I found that if you cut the air box in half just above the filter and along the front edge there is a perfect mounting surface that will position the fuel rail behind the openings to the carbs.




  Alignment is not perfect but the injectors all fit with the input of the carb, near the center, without touching the sides.  I printed 3D brackets and spacers to hold the fuel rail and injectors at the proper position.


I ended up sealing it with cloth electrical tape. Perhaps duct tape would have been better.






Item 2:  Design and cut a 36-1 tooth timing wheel

There are online timing-wheel design tools available. I used one of those tools to design a 36-1 timing wheel. I then took that design to a machine shop that had the laser cutting tools to make the wheel.


Tooth design


Original Kawasaki wheel and New 36-1 wheel.

New Wheel mounted. The missing tooth is 290 degrees (clockwise) after TDC cylinder 1.


Testing determined that the Kawasaki pickup coils were not adequate to see the teeth on this wheel. At low RPM the signal was too low that is was sometimes missing several teeth after the missing tooth.

Skipped pulses after the missing tooth, caused by the large signal of the missing tooth setting the input thresholds of the detector too high.


The root cause was in the original coil design and the electronics, and a reliable work around was not found. So, to get past this road block I designed and fabricated a Hall-effect sensor mount that reliably produced a 5-volt digital square wave on each tooth.



Kawasaki crank pick up coil used to model the fabrication of a Hall-effect replacement.


Silicone mold of the part with Hall IC in place.


New Hall-effect crank position sensor installed.


Signal from Hall-effect sensor showing all 35 teeth as well as the missing tooth.


Crank Position sensing solved.



Item 3: Design/create/adapt a throttle position sensor

The ZG1000 never having the need for a throttle position sensor (TPS) lacked any method to install one.


Using a spare carb, I was able to determine I could gain access to the butterfly shaft by removing the plug on the side of the end carburetor.  I chose carb 4 for both mechanical and electrical positioning.


To remove the plug, I use a punch to mark the center of the plug at the side of carb 4. It is important to get as close to center of the plug as possible as this will become the shaft that connects to the TPS.

After finding the center, I drill a hole for a 4-40 screw about ¼ inch deep.


 Put a 4-40 screw in the end of the butterfly shaft. The sides of the screw head are ground flat so it would mate with the slots in the TPS. I used epoxy to make sure it did not vibrate out.

I tapped a hole in the body of the carb with for a 10-24 screws and put an 8-32 screw through the TPS to hold it in place.

I 3D-printed an adapter to hold the TPS and bolt it to the side of the carburetor. I used the tab (T) and hole (S) for aligning my TPS adapter.


TheTPS came off a ZX14R






Item 4: Air temperature sensor

Any of these part numbers will do. Temperature Sensor for Cadillac Chevrolet Buick GMC Oldsmobile Pontiac 25037225, 25036751, 25037334, CGQGM009.



Placement of the air temperature sensor is not critical as long as it is in the air stream. You can see where I mounted it in the photos of the air box.  There are two layers to the input of the air box. To mount it where I did requires drilling a large hole (just large enough to accommodate the bolt head) in the top layer. And a smaller hole for the screw threads in the bottom layer.  This will suspend the sensor into the input air stream but unfortunately the top hole will open a path around the filter. It is important to reseal the hole you make in the top layer.  Mounting on the side but still in the airflow may be a better choice.

Air temperature sensor placement.




Item 5: Characterize the resistance of the Kawasaki coolant temperature sensor (calibration)


These measurements are not exact but pick three points between 5 and 75 degrees C and the ECU will extrapolate the rest.  Using the values for 5, 32 and 75 degrees the readings for this sensor are nearly exact to the GM air temp sensor when the bike is cold.

Item 5 DONE.


Item 6: O2 Sensor

 Purchase an O2 sensor with a wideband controller and find an appropriate place to install it.


This is my choice. I used the same one on my first project and found it accurate and easy to install/use.

I mounted the O2 sensor on the right side just behind where the two exhausts merge.  The tail pipe is thin and great care must be used when welding on it. I first cut a piece pf pipe to use as a saddle and welded the bung to that pipe then welded the saddle onto the tailpipe.


Item 7: Make harnesses

This is a learning trial and error exercise in that you think you have the routing predicted only to find an easier way while doing the implementation.


I used bulk ribbon cable and connectors to attach to the ECU, and pulled the individual wires that I needed one by one down to within a couple inches of the connector.

Two of each. One male and one female in the ECU and one male and one female harness connection.

Starting at the ECU which is mounted to the rear of the battery case; the harnesses can be routed directly up to the frame cross-member and then routed to their final destination.

For the final connection to the sensors/ accessories, most motorcycles use the same sort of connectors, and since I was going to use a lot of them I purchased a variety kit online.






DO NOT RELY ENTIRELY ON CRIMPING. If possible, finish it up with a little solder.

Connector and pin assortment.


8 Ignition

The Kawasaki coil drivers (igniters) are not easily compatible with this ECU. I tried several methods to convert the ECU ignition signals to some voltage level that would trigger the igniters but in the end none of them worked reliably.


This is when I chose to use “smart” coils. It is the igniter and coil all in one package and operates on 5-volt logic signals. I tossed the Kawasaki coils and igniter, and replaced them with LS D585 smart coils. They operate flawlessly.


In order to mount the smart coils close to the plugs I removed the Air valves and covers from the top of the valve cover and replaced them with a couple of steel plates. I used the original screws to hold down the plates and the smart coils. 


I then ran about 6 inches of resistor spark plug wires from the coils to the plugs. Worked well and looks really cool.

Smart Coil Mounting


The ECU for this project is the Speeduino. There is a user’s group, chat space and blogs available to help first time users over the difficult parts of the project. They have been great help to me in both problem solving and advice.


Speeduino is an open source project and parts can be sourced from a variety of vendors.  I purchased my version v0.4.x from a reliable vendor in Israel. The shipping time is about 10 days to 2 weeks. I have purchased two from him and find him a reliable vendor. It comes preassembled and with optional daughter boards for idle stepper control and VR sensors.



A variety of videos I made while on this journey.

Fabricate an injector characterization device.

Implement a controller to control the injector tester.

Injector mount fail.

Cutting open the airbox, Modifying the carbs for use as throttle bodies.

Experiments with crank position sensing.

Crank position Success tie a hall effect IC

First start

Getting close

Wideband controller and sensor test.

Is it ready for the road?


So that’s it. Items 1 through 9 completed. Now comes the tuning part and making it road worthy.