Fuel Injected Small Engine

ProjectsPublished February 25, 2010 at 11:49 pm No Comments

The same team from the fingerprint activated door lock united again, this time for a class project. As part of the course: Principles of Engineering; we designed and built a fuel injection system for a small engine. Because the class centered around the use of Microchip PIC controllers, PICs were the primary ingredient used the project. The engine was part of a pressure washer. We borrowed the assembly from a small engine shop that donated the engine/pressure washer to us for the duration of the project. This project was done in collaboration with Clark McPheeters and Eamon Doyle. Thanks also go out to professors Gill Pratt and Brad Minch as well as the FW Olin College of Engineering.

This project was completed as sophomores in college in the fall of 2006. This writeup is being done nearly 3 years later in 2009.

background

Even though only one of us would pursue mechanical engineering as a major, I think we thought of ourselves as gear heads back then. Eamon had a keen interest in fuel injection due to the work he was attempting on his car at the time. To try to keep our project as simple as we could, we focused on the simplest kind of electronic fuel injection. We planned to replace the carburetter with a throttle body with a single injector. In a single cylinder engine like the one we had, there was little reason to make a more complicated system. The project then would have several parts, the first would be system design, the second would be the code and the third would be the physical build.

Generally, the benefits of electronic fuel injection is efficiency. For small engines, that concern isn’t worth the cost or performance penalty of such a system. Our project was purely academic in nature and was not intended to bring significant gains.

system design

Identifying the critical components of the system was easy, we knew we needed an injector to put the gas into the engine, a pump to move the gas from the tank to the injector, a throttle body to inject the gas into, sensors to tell the state of the system, a circuit board that translated the PIC output into powered action and a battery. The battery was needed because we wanted to keep things as simple as possible, but we needed electricity to power the pump, the PIC and other assorted circuitry.

we take our diagrams seriously
we take our diagrams seriously

Our rough  diagram is above. Sometimes drawing some stuff on the back of a sheet of homework over lunch leads to good idea. Just remember its a concept diagram….not a wiring diagram.

the code

In this section, i *could* post some C code, but that wouldn’t add any value to what we really did. Instead I will tell the story.

The first thing we did was create the look up table that contained the values that we needed to calculate the amount of gas we needed based on the RPM and air flow into the engine. Our system had a 16×16 table with RPM and airflow as the axes that determined the amount of gas we would be injecting. We intended to keep the gas line at a relatively constant pressure, therefore the table contained a factor that was to be converted into a time value that told us how long to hold the injector open. Based on our understanding of other systems, the duration of injector pulse is also how some commercially implemented systems control the amount of gas entering the engine.

Our two sensors both reported analog voltages to the PIC. In the case of the RPM sensor, the result was a very rough sine wave. To make this work, we changed the voltage of this signal to place the threshold of the digital input of the PIC such that we could detect rising and falling edges of what could now be considered a square wave. Every rising edge meant one rotation had passed. The period of the wave was measured and converted to an RPM value.

The analog voltage from the air flow sensor conveniently fell within the range of voltages that could be detected by the PIC using an analog input. After characterizing the sensor, we converted the nearly linear voltage readout into air flow numbers.

Once we got our numbers, we used the look up table to get two values. Since the values from the sensors usually would not line up with the references from the table we got high and low values. We then linearly extrapolated a more precise value. Since the equation for volumetric efficiency was not linear, the approximation was not perfect, but it was more accurate in most cases than either just a high or low value.

Clark loading code onto the PIC
Clark loading code onto the PIC

An additional feature of the code was the ability to run rich at start up, much in the same way that a choke helps small engines start more easily and how fuel injection systems for larger engines run in open loop mode for a little while. This mode did not use a different table it just linearly added a little extra gas for the first twenty seconds by adding an extra RPM based factor to the length of the injector pulse.

the physical build

To make the system work, we needed to replace the carburetor with the throttle body and mount the sensors. The air intake was disassembled and the carburetor was removed. A piece of aluminum stock machined with a mount for the injector and a mount for the air flow sensor took the place of the carburetor. The pump was mounted in line between the injector and the gas tank. The circuitry and other electronics were just mounted on the chassis of the pressure washer. The engine was still going to have to be pull started.

completed build
completed build

the end

At the end of the day, the project was not a complete success. The engine had trouble running due to a dirty signal off the RPM sensor. During our required class demo, an attempted demo of the systemthat wasn’t supposed to include the engine running accidentally shot gas out of the injector and onto the floor…much to the chagrin of our professors.

We still presented the project for an Olin expo though!

the fuel injected pressure washer and me
the fuel injected pressure washer and me

Leave a Reply

(required)

(required)