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.