DYI Injector Cleaning and Flow Testing

-

KitCarlson

Well-Known Member
Joined
Jan 17, 2008
Messages
2,628
Reaction score
471
Location
Middle Tennessee
I am a frugal do it yourself person. I have restored several older fuel injected cars in the past. I have managed good results with the old reliable Bosch style injectors. I have not flow tested, but the vehicles ran very well. The Bosch solenoid injectors were first used by VW Type3 and Porsche 914's in 1969, and later by MOPAR in the 80's. Many say if the bodies do not leak from mechanical abuse, or freezing with water in them, they can be cleaned, and a high percentage will pass flow tests.

The injectors have two different solenoid types that vary by impedance. The low impedance measure about 2.3 Ohms. They are peak and hold injectors. The injectors are typically operated by applying full voltage for an instant, then reducing the holding current. The simplest way is a 6 Ohm resistor in series with the injector with a 12V supply. There are more details but will save all that for later. The high impedance saturated injectors measure 15 Ohms, they can be driven directly from 12V.

Injectors typically are limited to 85% on time and require fuel flow for cooling. A few clicks for test will not hurt an injector, just use a 6 Ohm series resistor on low impedance injectors, or an adjustable power supply capable of a couple amps at 5V.

Bench testing the solenoids for a click, reveals if an injector is stuck or not. I often find that injectors that have been left on a manifold with rails holding gas are often stuck when the fuel dries up and turns to varnish.

I have found looping a tubing from injector inlet to outlet with CRC Brakleen inside works wonders in a few minutes of shaking. It is a simple and clean way to do the first clean, to free a stuck injector.

Injector inlet filter baskets are removed by using a correct sized screw and pulling with pliers. The pintle covers are removed by applying a 5/16" hose and pulling quickly. If that does not work, snug it first with a hose clamp. New inlet filters and pintle caps are available from vendors on Ebay.

I have purchased a Harbor Freight ultrasonic cleaner. I am just starting to experiment with it on some 40 year old injectors.

I have not built the flow tester, but I have most parts. I will use my EMS2, normally used for fuel injection and ignition, to drive four injectors for test conditions of various pulse duration, frequency and counts. I have developed three different flow benches for diesel injectors, so I have experience with all that. I have a few hours of code development ahead of me to make what is needed for this situation. I will have have a PC interface for test configuration, and a switch or two via the timing sensor interface for manual start/stop control. Fuel pressure control will be via an adjustable regulator, or a rising rate regulator and a Mity-Vac hand pump. I might add pressure measurement however a stainless steel pressure sensor is $100. I have one in my turbo Omni, but do not want to take it out. I am more interested in equal flow for each, without pintle leaks at this time.

I will start building the flow bench in a day or two when it warms up. I am working on the software now.

Below is some of the "junk" parts and equipment I plan to use.

Please free to comment. I am learning as I go. Not sure of best methods for ultrasonic cleaning.
 

Attachments

  • 20140227_144035.jpg
    100.3 KB · Views: 376
Frankly, and I could very well be wrong, but ultrasonic would not be my first choice. Devise a way to feed a gum solvent through them while activating the solenoids, I would think. I can't wait to see what you come up with for a flow bench. Something that has always bothered me is "what can you NOT use" as in damaging anything internal, as parts of them are obviously non-metallic.
 
Thanks for the great tips on taking apart MPFI injectors. I have seen the filter screens cheap on ebay ($15 for bag of 50). The Simple Green is interesting. I used Walmart's Super Clean to remove the paint on my plastic dash pieces before a re-chrome, based on tips from plastic hobby modelers.

I have seen other threads where people use ultrasonic cleaners. I have been considering the Harbor Freight ones also. Your graduated cylinder looks small, compared to ones you see on youtube, which fill pretty fast, but that might have been sped up video. You couldn't afford the gas if they really flowed that fast.

Check ebay once in a while. I bought my GE Druck 3000 psig stainless pressure xducer for $22 and it has a high-level 0-5 V output. It is actually easier to get such specialized ones cheap since more people are looking for 100 psig range. I use mine in my diesel injector pop tester. I also bought a Dataq USB A/D converter for ~$15, but the free software is a problem (have to kill it in Task Manager and restart) plus clumsy to use. I need to fix that to make my electronic recording simple.

One thing I have thought about for an MPFI tester is the effect of the duty cycle. It seems some people's testers just turn the injectors on continuously rather than pulse them. It probably doesn't matter much, as long as you treat all the injectors the same, since the ultimate goal is to balance them. Still, there could be variances in the turn-on behavior that could make one flow different in actual engine conditions, so pulse testing seems best. Indeed, best to pulse at a very low duty cycle (10%) where the injectors spend most of their operating life, and where most gas is used.
 
Bill,
My EMS has an analog inputs for 0 to 5V sensors. It also has data logging. It can log 8 channels at a rate of 10mS. The rate is variable set by the GUI.

I can set the injector pulse width in the test parameters. By viewing the injector current signature it is possible to determine when the pintle is fully open. If remember correctly that is about 0.9 mS for a low impedance injector. High impedance injectors are a bit more. Most running pulse widths vary between 1 and 10mS. If too large of injectors are used, and times are less than 1 mS, then flow is non linear.

It is easy to integrate the delivered durations to estimate fuel consumption. There are small offsets, related to the difference in on/off rise and fall times.

I will be using a regulated power supply for the13.8V. Injector rise varies with supply voltage, and fall a function of holding current and discharge potential. I have compensation in the EMS to vary pulse width to accomodate supply voltage variations. I wll not need that with the regulated bench supply, so will use true times.

Something I see with diesel injector testing is flow related to temperature related fuel viscosity. Some injectors run up to 29,000 psi. I plan to use about 30 psi, and the viscosity of gas is much less so that should not be a problem. I will go to 50 psi when doing tests for turbo car injectors, the regulator keeps the differential pressure there.

I plan to use coleman stove fuel with seafoam as the test fuel. My hope is it will be clean, and serve to clean. I will filter both sides of pump.
 
I did more thinking about how to generate the injector signals. While my ECU could be directly wired saving build, it would require a PC for the user interface. Instead I plan to use an inexpensive development board with LCD and keypad. The mosfets are only $1 and simple to hook up. There will also less software to write, because I can reuse code. Mostly reducing some features. The board is $30, and costs less I could purchase the parts for. Yes it is assembled in China. The system will work standalone without PC. I will add a 4-button keypad for user interface. The LCD is two lines with 24 characters on each line. I will mount the unit in a sealed enclosure.

The scope waveform shows the notch in the injector current waveform when the pintle opens. I used a current transformer for the measurement. It could also be done with a current shunt and two scope probes as a differential measurement. This is for a high impedance injector.
 

Attachments

  • 20140302_163814.jpg
    91.3 KB · Views: 319
  • 20140302_162742.jpg
    52.2 KB · Views: 370
I have the program running. I kept it simple, most of the work involved working with the mechanism that lets the user develop test conditions for testing the injectors. It is possible to run four selected tested test each with the parameters of Injector Pulse Width, RPM, and Shot Counts.

I decided to use individual drives instead of a single bank drive. There are a few reasons, it will be easier to trouble shoot individual injector problems, and the injectors are fired one at a time to avoid possible transient pressure drops in the fuel rail.

I am waiting on a few parts, the enclosure, keypad, and mosfet drivers. I have used a PC based Saleae logic analyzer to test the four injector signals driven from the board. It records up to 8 channels at a rate of 24MHz via USB. I use it to debug EFI and ignition drive signals in my development process. The best $150 I have spent in test equipment.
 

Attachments

  • 20140304_105358.jpg
    49.4 KB · Views: 347
LOL. I'm so far behind on this stuff it's incredible. I'm pretty much completely clueless on all these little trick boards you can pick up.
 
Here is a URL to one on ebay. [ame="http://www.ebay.com/itm/AVR-ATMEGA16-Dem2-Demo-Development-Board-LCD-USB-/251140517255?pt=LH_DefaultDomain_0&hash=item3a79242d87"]AVR ATMEGA16 DEM2 Demo Development Board LCD USB | eBay[/ame]
Near the bottom is a down load center to find the schematic and user manual.

It has a bunch of features, LCD, LED 7 segment display under that. Temperature sensor, speaker, LEDs, eeprom, USB interface for serial communications.

I load a bootloader, then use it to install code via USB without programmer dongle. It makes it easier than using the 10 pin ISP. The programmer I sent you will program it on that connector. I can send you the bootloader code. Once that is done it only takes seconds to install new code via USB.

I have a bunch of code I wrote to demonstrate programming to students.

I can share code and help you get started.
 
Here is the user manual, it covers AVR and PIC development boards. Avr schematics are at the end. Ignore the PIC, they are a mess to work with.
 

Attachments

  • DB-DP115_V2.0_EN.pdf
    785 KB · Views: 747
What's the best way to clean them in the car? Wifes 01 crv use to get one that would stick, now it doesn't stick but I think it is dirty or a bit week.
 
I have never had a problem in a running car. I change fuel fiters, use exxon gas and try not to let the tank get under 1/4 before fillup. Perhaps others have experience with on car cleaning.

My experience is getting junk old stuff working again, by taking everthing apart, working on the pieces, then reassemble.
 
Re sticking injectors, I have read that Techron actually works. Before that, Exxon had Techraline. I have no idea what it actually is, probably some common solvent(s). You can buy Techron alone in little bottles. Best to add cleaners to an almost empty tank so more concentrated.

I am amazed how well multi-port injectors work. In the early days of EFI people assumed they would get varnished or fail regularly. Recall all the ads for injector cleaning? My 1996 2.4L has 198K miles and my 2002 3.8L has 205K miles and I haven't touched the injectors in either. I do want to remove them and check for balance since the entire fuel control depends on them being matched.
 
I found time to test the injector drive signals to verify correct starting, stopping and counts. All is well, now waiting for parts. Weather is warming soon, I will take advantage of that to construct the panel for holding the fuel supply, injectors and other components.

The controller uses a single interrupt to control the on-off for all injectors. The timings are pre-calculated based on the selected test. The interrupt is a state machine, that is enabled, then steps the injector rise and fall edges, and decrements shot counts. When the shot counts are complete, the interrupt disables itself.

Here is the code: // is the start of comments
Note: Sorry spaces and tabs are gobbled up in the posting.
I am not a html wizard, so cannot fix that.
// Timer1 output compare A interrupt service routine
// used to control injector drive signal timmings
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
if ((sm&1) == 0) // odd values turn on injectors
{
PORTA = (1<<((sm&7)>>1)); // this selects bit for injector
OCR1A += InjT; // set on time
}
else // evens turn injectors off
{
PORTA = 0; // all off
OCR1A += InjO; // set off time
}

if (sm++ == 7) // increment state, 8 states for rise and fall, for 4 injectors
{
sm = 0; // next cycle start
if (--flow_tst_cnt <= 1) // decrement shot count, check if end of test
{
TIMSK = 0x01; // mask interrupt to stop injection
stopflg = 1; // set stop flag
flow_tst_cnt = 0; // zero test count
Mode = TSET; // set for next test type
}
}
}
 
LOL. How ironic, Dave, that the guy who is far ahead of some of us on programming cannot illustrate his work.

This stuff reminds me of my first computer, a VIC 20 a "friend" of mine talked me into buying from him. Used an audio tape cassette recorder for a "hard drive."

It very NEARLY came close to turning me off to computers forever.

You'd type endlessly into the darn thing only to "lose" all you did forever.

My second one went a bit better. I found an 8088? 8086? at a "ham fest" with about a 10" amber screen monitor. This had originally come with the (optional) TWO (not one) floppy drives. 360K? I think? And someone had added a GIGANTIC 40mb hard drive. I found a receipt in the documentation where this drive and controller had been purchased by the original owner...........for...........

FOUR THOUSAND dollars. This was one hell of a lot of money in ??eighties??

This had Xtree Gold loaded on it, which was a VERY nice file manager and transfer program, and had a few "ham radio" packet / rtty / logging programs. DOS 3. something

But I've never been a programmer. Just like I've never spoken Japanese, LOL
 
Del,

I tried a bit harder. I copied the text into open office and converted to pdf. It is a bit more readable. Most sites I post have code tags, they let me post code with all spacing and tabs intact. I will post as pdf.

My spoken and written language skills are very limited. In reality, computer languages are much simpler than any spoken or written language. In C there are only about 25 keywords, and some syntax and operators including (),;[]{}!|/+-<>'":%&^~?. Imagine a dictionary with 25 words. In general most computer languages are similar, just changes in syntax and words. The methods of use are similar.

My example uses two keywords "if" and "else", the rest are variable names, operators and syntax.

I learned to program by starting with an HP25C calculator. The manuals and example programs helped me get started. The basic skill learned can be applied with nearly all languages.
 

Attachments

  • ISR.pdf
    32.5 KB · Views: 180
The timer compare interrupt is used in many applications. Examples are: engine timing sensor simulators, fuel injection, and ignition systems. There is another method called input capture, it is used to measure sensor time events. By using the same clock source for measurement, and output compare, signals are readily synchronized to engine rotation, with offsets in degrees from timing sensors.

Back to the code in my prior post. It works much like an alarm clock. An internal clock. When the clock, and alarm setting match, the code in the ISR (interrupt service routine) executes. The code controls an output based on the value of sm, a variable that is incremented by one each time. It also sets the alarm for the next ISR. Since the are only two states for an injector, off and on, and for 4 injectors 8 states, I split the operations using even and odd numbers. There are many other ways to accomplish the task, it is often up to the programmer. An understanding of binary representation helps. Odd numbers always have the the least significant bit set, else the number is even.

Setting the new compare time is easy, OCR1A += ***; adds timer counts of *** to the OCR1A count that was responsible for the prior event. The system works like following travel directions. Make a turn, drive ***, turn, drive yyy ...

In an EFI/Ignition system the input capture ISR captures the clock timer value at sensor edges. The difference in two captures is the time between them in timer ticks. On a V8 distributor ignition events are 90 crank degrees apart, the timer tick count varies with engine RPM, faster results in fewer ticks. The math is simple to divide ticks by degrees, and use that information to control dwell and ignition and fuel events based on timing maps. The computation process involves other important acquired sensor information. The information is gathered using a multi-channel analog to digital converter. That is a way of converting sensor output voltages to usable numbers. I use synchronous sampling to techniques to gather the same snap shot of information regardless of engine RPM. Multiple points are gathered to aid in smoothing the data, and grasp accurate information. While some say EFI may not work well with wild cams, I have not found that to be true when using the technique.

So there are more complexities in the system, multiple timer channels are used, so ignition events, and fuel events for individual channels are independent, yet linked to a common clock. There are overlaps in a real system for both ignition dwell events and fuel events at higher RPM.
While a single timer could be used, it would be necessary to manage the order timer events this gets complex. It would be similar to get in line order and take a number. Way too complex fo me.

The calculations to arrive at new ignition and fuel values take about 1mS. The calculations happen in the available free time, the information is updated in a special way to insure it is properly shared in the various program activities. The free time activities are interrupted by ISR events, but return and continue automatically.

In a nut shell, that is how an engine management system functions.

One often starts very basic. Write that first program that tuns on an LED, then make it blink .... and build from that. Individual functions are written and tested, then integrated with the rest. An accumulation of various proven functions over time are used, in new programs, so after a while, only bits and pieces of software is written to tie things together. It is easier for me to write code than trying to find and modify code found on the www. I do use bootloaders written by others if I can, otherwise it would be reinventing the wheel.

If there are questions about this, I will try to explain in more detail.
 
I am posting the circuits that need to be added to the mega16 development board. The schematic includes the the injector mosfets, 5V power supply and pull-up resistors for the added keypad keys. I plan to use two connectors to select between the high impedance and low impedance injectors. The high impedance connector will tap before the 6 Ohm resistors.

I am still waiting for the enclosure. I have started construction on the panel for mounting parts.
 

Attachments

  • FB_aux_board.pdf
    17.1 KB · Views: 169
Here is a picture of the panel with fuel supply. I have not mounted the legs/catch tank that will serve as the bench stand. I will disassemble and paint the panel once complete. I need to mount a shelf for the graduated cylinders that I have on order. I also need to mount the control unit after I get it and mount the electronics. I will use my 20A 13.8VDC power supply to power the unit. I use it for other work, so it will not be mounted on the panel.

The fuel rail is not mounted. I plan to have a way to use it, and hose connected early style injectors. I will only have to mount and hook up one hose. At the top near the tank is the regulator, the bypass fuel is routed back to the tank nozzle.

It is not flashy, just building from junk metal at hand. New items are filters hose and most clamps.

I will post again when it is up and going. I expect about a week.

I have also shown a took that places a dent in a tube so the clamp keeps a hose on. A friend found it in a dumpster, it was very rusty but cleaned up. It only has the #4 die. I wish it had others. I keep wondering if the dies were there too.
 

Attachments

  • 20140308_154610.jpg
    166.4 KB · Views: 257
  • 20140308_154212.jpg
    91.8 KB · Views: 258
That beading tool is cool as all get out. Never seen one. I used to "try" and make beads by "barely" using my double flare adapter. Never got it quite what I wanted
 
Based on Bill's comments, I checked ebay and found a $28 100 psi stainless steel pressure sensor. Thank you Bill. I can use it and about $2 of other parts to regulate the fuel pressure using PWM.

I will post a revised schematic for the added pump motor control. The plan is is to leave the mechanical regulator in for now. It regulates at about 3bar with manifold reference port at 1bar. It will serve as a safety while I verify the modified integral control is working. I am experienced with pressure control from 300 psi to 29,000 psi, using the same micro controller board. That work involved a solenoid that held back relief flow to increase pressure. It should work for a motor with very minor changes in gain settings.

I will add a pressure parameter to the tests.

Here is the pressure sensor: http://www.ebay.com/itm/261260635816
 
Hm..............................mmmm. I'm gonna have to see if those will work on my Holley EFI

You can buy Holley oil/ fuel senders but they are EXpenSIVE. And of course Holley is not about to divulge anything about the specs of the things...................
 
Del,
Some pressure sensors have different scaled outputs. Some go 0-5V for 0 -100psi, this one goes 0.5 to 4.5V. I have made a very simple circuit using an ATtiny45. It costs about $2 and can convert outputs at desired. The Holley ECU will never know the difference. I do not know what the Holley needs. You can test by using a potentiometer voltage divider, and meter. Just supply a 1K pot with 5V from the sensor suppy, and the adjustable voltage to sensor input. Read pressure and record input voltage. See what the voltage is for 0 and 100psi.

I have done this conversion to fool Ford Diesel ECUs, to re-scale fuel pressure in performance applications when changing to PZT injectors from hydraulic solenoid style.

It uses a ATtiny45 (same 8 pin part as gauge cal circuit) plus a few caps and a couple resistors. It uses the internal 10 bit ADC, simple math and high frequency PWM with filter to output the desired signal. Component values are not critical, no calibration required. I can share circuit and code if you need it. It is powered directly from the 5V sensor supply, so just goes in line with sensor, in the 3-wire connection.

It is easy to built directly on an 8pin dip socket.
 
Seems like a lotta trouble to clean injectors. I just pulled mine out and soaked them in parts cleaner overnight. Worked like a charm.
 
Cool thread! I like learning. As for post 10,B.G. products, & 3m used to to do a bitchin' F.I. cleaner,accessed through the service/ psi check port.
 
-
Back
Top