Electronic Fuel Injection



So the ol' Cockshutt 30 was feeling its age. All 71 years of it!


Last winter with carberator.

It was getting to be a chore with one hand on the steering wheel, and one hand on the gear shift, and one hand on the hydraulic lever, and one hand on the choke, and one hand on the fuel shutoff valve.....
The problem was the carburetor, or as I refer to it 'Calibrated Toilet', was completely worn out. Throttle shaft, needle and seat etc....
Apparently no one is in the business of making Calibrated Toilets, er I mean carborators for 71 year old machinery.

This is where the Delusional Mechanic steps in. I was thinking how hard can electronic fuel injection be? Really, how hard?

First we need to know the engine position/rotation or something. Oh look an old ABS sensor from some highway truck! The things some people have laying around... I think that will read the flywheel ring gear teeth.
Confirmed by the Occilioscope I was right.
Now I need a micro processor. Not a problem, I ordered 10 from China last year and have not used them up yet.
I tested the sensor at this point and found that it didn't produce the minimum 3.3 volts needed to trigger the Arduino with tractor at cranking RPM and worse it would exceed the maximum 5 volt rating at high RPM. This would make the Arduino decidedly unhappy, in a cloud of smoke type of sense.

What I wanted was a 741 op amp to interface these items but alas I couldn't find one. I was having some success with a 7474 but not great. I was about ready for a nap when I found an unsorted box of e-goodies the wife evicted from the basement during an office to bedroom renovation. In the bottom of the box was a 741 op amp in a brand new RadioShack package. Wow is that old!

Whooo hoo signal received!Arduino is reading teeth

With the signal in place, the next step is the mechanical.

It was a nice spring day for a ride on my Gold Wing so I took a little trip to my in-laws and acquired 4 injectors from some random dead car. Brother-in-law was a bit of a collector (RIP eddie), this may be why my DW has patience with my collection
I had a fuel pump in my pump bin however I have no idea where it came from. An old 2 lb propane tank was used to contain the pump and regulator fittings.

It seemed appropriate to put some of the loose bits in a box. Have I mentioned how much I love my 3D printer.



It's alive! It now would idle! That is all it would do, but it did run. Hey Dad... told you so

I tried to use delay() to open and close the injector. I wasn't really having a lot of success, and then I was overcome by a wave of nap.

When the piston travels from TDC (Top Dead Center) to BDC(bottom dead center) it will ingest 0.625 liters of air. 2.5L engine divided by 4 cylinders. Hmmmm a constant and stoichiometric ratio is 14.7 to 1. Math is easy at naptime.

The ring gear on the flywheel has 126 teeth on it, so even though I don't know the crankshaft position, I do know when it has counted 63 teeth, it has traveled 1/2 a revolution. On a 4 cylinder engine 1/2 of a revolution from any point means 1 intake stroke has happened( or part of one cylinder intake and the end of another intake totalling 1 complete intake stroke, ether way 0.625L of air is introduced). Deep breath! Time for another nap.

Knowing that the engine has completed 1 intake or 63 teeth referencing the the first line of code from the main loop, I can add base fuel or {feul = 6}. The injector is open as 6 teeth go by. This is surprisingly a touchy number, 8 is too rich as it stumbles a bit and a trace of black smoke whereas 4 is too lean and won’t run. There were a few really bad guesses here, I think I started with 20.*cough cough gag

I think I will have a nap while the shop airs out!

The next thing on the list is throttle position sensor (TPS).
The engine will lean out when the throttle plate opens as more air can fill the cylinder during each intake stroke. This is where my tinkery small custom one off linkages come into play.They operate a potentiometer or tps {throttle position sensor}. The reason for the fancy writing to EEPROM and the idle calibrate bit is because every time the carb is removed the potentiometer mount is not necessarily returned to the EXACT same location and the throttle map is affected. If I remove or adjust the unit mechanically I just flip the switch to ‘calibrate’ and move the throttle up and down, presto recalibrated.



It would appear that volumetric efficency increases as RPM increases so 'RPMfeul' variable was added to the code

Sophisticated Wild Ass Guess (SWAG method) told me that 1 injector might be enough fuel. A housing was then constructed to sit between the calibrated toilet and the intake manifold.
A brass fitting was brazed in to hold the injector. I was to find out later that 1 injector does not supply the required amount of fuel at high load. While attempting to drill a second hole for the second injector the bit snagged and it broke the housing. I recall saying " we will start again." or something like that....

With all of the pieces in place, all we need now is a bit of computer code.



Apparently C++ isn't too picky when it comes to spelling mistakes in the variable names as long as they are all speled equally wrong.
I would also like to mention that the issue with feul vs fuel is a hazard of being dislexik.. dislecick ...dyslex….. Who the HELL came up with that word anyway, its bullshit, I’m writing the Prime Minister!!!!!!!


and after a software update a retest of a cold start was in order.


You may have noted the new muffler from a 2 Lb propane bottle, never been a fan of straight pipes. I told the wife it for extra power.

You know I was kinda kidding when I said "What's next for the old girl? I was thinking electronic fuel injection and maybe power door locks."

Back to the home page