Fuel Injection: The first drive…
First things first, the new high pressure fuel system was checked for leaks using compressed air from a Mityvac hand pump. Once the fuel system was proven to hold pressure, fuel was added to the tank. Note Fuel injection uses much higher pressures than carburetors so any leak is likely to be dangerous.
When the car ignition is turned on, the ECU automatically turns on the fuel pump relay for a couple of seconds to pressurize the fuel system but switches it off again if the engine isn't turning. I'd connected the wideband EGO sensor to this supply also, so that if the ignition is on but the engine not turning, the oxygen sensor is not being needlessly heated either (A common failure mechanism for oxygen sensors is being damaged when hot at startup by condensate present in the cylinders/exhaust system).
Some basic parameters were programmed into the ECU to describe key aspects of the engine such as number of cylinders, number of fuel injectors per cylinder, rpm limit, type of toothed wheel on the crankshaft, rpm limit, and the use of TPS for load (Alternative is MAP). This was done using DTA's own ECU software that runs on a Windows PC and connects to the ECU via a serial cable. Here a laptop computer is best if you want to tune whilst you drive!
Next up, the ECU was programmed with the characteristics of the air temperature sensor, coolant temperature sensor (oil), Manifold Air Pressure (MAP) sensor, and Throttle Position Sensor (TPS) that I had selected, and the values returned by the sensors checked to ensure that they were sensible. At this stage the MAP sensor wasn't responding but this was simply down to the 5V supply pin to it not being completely pushed home in its housing. For each sensor the characteristics consist of a table containing two columns. The first is a full range set of the physical real-world parameter the sensor measures; the second is the output voltage that the sensor generates for each of these inputs.
With fuel relay removed, the engine was turned over on the starter with the ECU Software in Cranking Oscilloscope mode. This allowed the ECU to approximately detect the orientation of the toothed wheel with respect to its sensor, and estimate an offset to TDC that should be programmed into the ECU. This set ignition advance correct to within a few degrees which was checked and set to an exact value with a timing light once the engine was running.
The two most fundamental tables of map values were then programmed. These were for fuel supply and ignition advance across both throttle position (i.e. load) and rpm. These needed to be programmed for 14 different load positions and 20 different rpm positions (i.e. 280 values for each in total). For ignition advance I emulated the mechanical advance curve of the Mallory distributor I'd previously been using but added additional advance for low load conditions (expected to give improved mpg). The starting values for fuel supply had to be guessed – for initial starting only the ones around idle (low load, low rpm) were important.
Next up was programming tables to compensate for the temperature of air being drawn into the engine (cold air is denser and needs more fuel), air pressure (low pressure air needs less fuel) and to provide additional fuel and/or advance to the engine when cold (to emulate the affect of a choke).
Finally (for now anyway) the table for startup fueling was programmed. This allows additional fuel to be added for the first couple of minutes of engine running whilst the walls of the manifolds and throttle bodies build up a puddle of fuel. Again, this additional fuel could be programmed for a range of different engine coolant temperatures.
With the fuel relay replaced and a couple of fire extinguisher on standby it was finally time to attempt to start the engine.
Amazingly it fired straight-up when given some throttle albeit it was running eye wateringly rich. A few taps on the laptop keyboard reduced the amount of fuel and I allowed the engine to warm up.
Once warm it was possible to start exploring a small range of throttle inputs and engine rpms (whilst the car was stationery in the garage) and set the fueling correctly. This expanded to a tentative drive up and down the drive, then up and down the road, and finally full blown test drive with my long suffering wife driving and me sat alongside in the passenger seat, laptop in hand, giving instructions of what throttle input and speed to drive at, adjusting the fueling as she drove!
Once an approximate fuel map had been set by this process it was then possible to revisit the startup fueling over the next few days to ensure that cold, warm, and hot starting behaved themselves.
Next up was fine tuning the fueling and also configuring the idle valve to ensure that the engine didn't have to be idled on the throttle when cold. Configuring the idle valve led me to switch from a Bosch value to a Ford one. The Bosch valve let in way too much air (even when allegedly closed!) and was difficult to control; the Ford valve is more controllable but doesn't quite let in enough air for the engine to idle for the first few seconds of running without some throttle – I'll live with that…
I then drove the car to a couple of events before the winter descended (and picked up a trophy at one of them for best engine!).
The car drives much better than it did with carbs, with about a 25% improvement in fuel economy, and a general improvement in driveability especially at low rpms.
I still need to book the car into a dyno to fine tune the high load / high rpm mapping that would be exercised on a track day – today they are set safely rich. I'll do this early in the season ready for track action at the Castle Combe Action Day and, of course, the parade lap at Le Mans Classic 2008.