New Project - DIY Fuel Pump Controller

SecondhandSnake

Well-Known Member
Established Member
Joined
Jan 29, 2011
Messages
1,759
Location
Columbus, IN
When you switch a return fuel system, as I have, you know that heat is the enemy. Get your return fuel too hot and your pump can cavitate, losing pressure and damaging components. This gets worse and worse the more power you make and the bigger pump you use. You're still only using a few hp at idle, but your pump is always pushing whatever peak hp you built it for, meaning a whole lot is going back to the tank with heat that it picked up from the engine bay.

There's a few ways to mitigate this. The first is a deadhead setup, which returns fuel before the rails. This means the fuel doesn't get a chance to travel through those aluminum heat sink rails before returning to the tank. It's a start. The next is pump staging (with multiple pumps or those that support the feature.) You run it on a "base" fuel level most of the time, but as soon as it goes into boost, you turn on the other pumps, or turn the pump on full. It's a viable solution. The last, most efficient, and most expensive, is a fuel pump controller. Lots of pump manufacturers sell controllers to the tune of $300+ that modulates the pump based on inputs like manifold pressure or throttle position. Nice, but expensive.

I wanted a controller of my own so I could turn my 1300hp capable pump down to a minimum while at idle or driving around town (and keep the noise to a minimum.) The pump I have is a Fuelab Prodigy, which has a unique feature- it's a brushless motor with it's own controller that has an extra input for controlling duty cycle. If you're so inclined, they have a regulator that does this. All you have to do is run a wire from the regulator back to the pump. Of course you pay a $200+ premium for this feature. Now I could just use a Hobbs switch to go from 50% duty cycle to 100% when in boost. That would be $30. But I have a controller project that might turn out cheaper...

Lucky for us, the 99-04 Mustangs already have a controller feature built into the car as a legacy from the returnless system. After all, that's how it functioned, controlling pump speed to achieve desired fuel pressure. But it isn't quite that easy. The ECM outputs a PWM command from 10-50% at 100Hz (half the desired duty cycle), and the FPDM basically opens and closes the circuit at twice the ECM's command at 20+kHz! Quiet and efficient, but too fast for our needs. The pump wants its command from 10-100% at 500-1500Hz. And the ECM needs an "OK" status at 50% and 1Hz from the FPDM. We need a way to achieve that.

Ok, some people are probably asking "what the hell is PWM?" PWM stands for "Pulse Width Modulation." It's a digital way of achieving an analog output. It gives an output by pulsing the signal to the "high" status for that fraction of the time period, then "low" for the rest. For 20% it will go high for 20% of the time period, then low, then repeat it. If your frequency is 1Hz (1 cycle per second) it would go high for 0.2s, then low for 0.8s.

Thankfully microcontrollers have gotten stupid cheap lately. I picked up an Arduino Nano for about $10. Using that microcontroller it's going to poll the ECM command, and then send the desired duty cycle to the pump at the correct frequency.

Now there's a couple wrinkles that make it a little more challenging.

The Arduino output is regulated to 5V. The pump and most car hardware takes battery voltage. So we need a way to step it up. The answer is using a couple transistors, a diode and pull up resistor. That way we can control a 12V signal using the 5V output. The most common way to do this produces an inverted signal (i.e. your 20% becomes 80%), but we can fix that in the code because hey, code is free.

The Arduino takes a 7-21V input, but you'll fry the integrated voltage regulator in short order if you spend time above 12V. We all know your car is going to be in the 13-15V range while running so you need a way to fix that. A 9V regulator will help with that, and for only a little more than $1.

There's the basis for the project. I'll update with circuit diagrams, code, components, and pictures as it progresses.

Right now the only thing I'm wondering about is how to make a clean finished project. I've got a breadboard to test it with, but I'm not sure I'm ambitious enough to make a dedicated PCB for it.

And I'm sure I'll end up needing some help from you electrical nerds on here.

For now all told with the components and chip I'm still slightly cheaper than a Hobbs switch.
 

black 10th vert

Well-Known Member
Established Member
Joined
Nov 15, 2007
Messages
6,188
Location
MA
Definitely sounds like a cool project. I remember several years back Malcolm had a thread where he built some type of circuit to control pump timing and sequencing. Not sure from memory if it was similar to what you’re trying to achieve, but it might be worth a search.
 

MalcolmV8

Well-Known Member
Established Member
Joined
Mar 27, 2003
Messages
7,353
Location
Tampa, FL
Definitely sounds like a cool project. I remember several years back Malcolm had a thread where he built some type of circuit to control pump timing and sequencing. Not sure from memory if it was similar to what you’re trying to achieve, but it might be worth a search.

I've built fuel pump controllers and also controllers that staged pumps based on MAF signal rather than boost so the additional pumps only come on when they're truly needed and not just because there was a blip of boost or even a WOT in a lower gear where the additional pump(s) where not needed. Now days I don't even run that anymore. Sometimes KISS is the answer (Keep It Stupid Simple).

So I simply run a regular flow through return style system (not dead head) and have a fuel cooler in the return line.

dYXe7uFknpfIg3SGASPvfVm00RbSVMZS2tCdXsn5KUu6PicYx8IWUftKEL32UsehUm9gw1FM=w900-h675-no?authuser=0.jpg


Of course for anyone who likes to tinker like OP that's great. Keep at it, I'm sure you'll figure it out and get something working. I just have to many projects and was trying not to over complicate my car anymore lol
 

SecondhandSnake

Well-Known Member
Established Member
Joined
Jan 29, 2011
Messages
1,759
Location
Columbus, IN
Malcolm- thanks for the info. I always wondered about the MAF signal, but at the same time worried about affecting the signal or the delicate PCM circuitry. In this project it's referencing desired pressure and fuel flow, so it's effectively doing the same thing via the FPDM control table.

The fuel cooler is nice but more cost and weight than my project, and the other factor- noise. I want to get the pump as quiet as possible at idle to keep it nice and stealthy, rather than most cars making this much power that you can hear the fuel pump screaming a block away. Even at 50% duty cycle it's pretty noisy.

Looking back I should have went with an in tank pump to minimize noise, but the options weren't as available at the time I purchased the hardware. Oh well, lesson learned for the Fairmont. On the bright side when I eventually upgrade it will be a less than 30min project, no need to drop the tank.

Back to the project-

Most of the electronics should be here tomorrow. Unfortunately I realized I think the PWM from the PCM is 12V, not 5V like a lot of the other engine sensors. That means I had to order some other parts to make it work. But I can still test the outputs, maybe do a bench test to verify I can control fuel pump speed (and which pins will work), and that my feedback PWM works.
 

MalcolmV8

Well-Known Member
Established Member
Joined
Mar 27, 2003
Messages
7,353
Location
Tampa, FL
Malcolm- thanks for the info. I always wondered about the MAF signal, but at the same time worried about affecting the signal or the delicate PCM circuitry. In this project it's referencing desired pressure and fuel flow, so it's effectively doing the same thing via the FPDM control table.

The fuel cooler is nice but more cost and weight than my project, and the other factor- noise. I want to get the pump as quiet as possible at idle to keep it nice and stealthy, rather than most cars making this much power that you can hear the fuel pump screaming a block away. Even at 50% duty cycle it's pretty noisy.

Looking back I should have went with an in tank pump to minimize noise, but the options weren't as available at the time I purchased the hardware. Oh well, lesson learned for the Fairmont. On the bright side when I eventually upgrade it will be a less than 30min project, no need to drop the tank.

Back to the project-

Most of the electronics should be here tomorrow. Unfortunately I realized I think the PWM from the PCM is 12V, not 5V like a lot of the other engine sensors. That means I had to order some other parts to make it work. But I can still test the outputs, maybe do a bench test to verify I can control fuel pump speed (and which pins will work), and that my feedback PWM works.

I thought your first post said you were return style fuel system. If that's the case the tune should be updated accordingly and the returnless fuel pump table is no longer referenced or used. Instead the signal from the ECU to the FPDM is simply on or off. Hence using the MAF signal to evaluate air consumption of the engine and ultimately fuel requirements.

Referencing the MAF my car was able to go WOT in 1st, 2nd, and half way through 3rd before the 2nd fuel pump ever turned on or was needed.
 

SecondhandSnake

Well-Known Member
Established Member
Joined
Jan 29, 2011
Messages
1,759
Location
Columbus, IN
I thought your first post said you were return style fuel system. If that's the case the tune should be updated accordingly and the returnless fuel pump table is no longer referenced or used. Instead the signal from the ECU to the FPDM is simply on or off. Hence using the MAF signal to evaluate air consumption of the engine and ultimately fuel requirements.

It is return style. But I'm turning some of the returnless values back on, and using that signal that normally goes to the FPDM to control the pump. The ECU spits out a commanded duty cycle, and this pump can be controlled by duty cycle rather than a simple on/off.

Though I'm glad you mention it because I realized I'll have to take into account the scaling in my tune. I'll have to scale it down to accommodate the 210lb injectors, so I'll have to make sure the fuel flow in the pump table matches. I'm sure I can math it out with the fuel pump calibration how much duty cycle it needs for how much fuel flow, and then maybe throw on 5-10% for margin.
 

SecondhandSnake

Well-Known Member
Established Member
Joined
Jan 29, 2011
Messages
1,759
Location
Columbus, IN
Got all the bench test code done. And I only had to compile it 3 times to find all the semicolons I missed. It's probably not the most efficient code but it ought to work. Now I'll have to get the chance to hook it up to the car and see if it works.

For the diagnostic output to the PCM I'm not going to bother failsafing the counter rollover since it would take 47 days of key on to roll over.

I'll have to come up with a strategy for when the PCM commands 0% FPDC, such as after prime, before crank. It might work for some people to just follow the signal, but I think I'd rather have it run with key on to minimize crank time. I'm thinking I'll just set a minimum clip such that if FPDC < 20%, set FPDC = 20%. I'm open to other suggestions though.
 

SecondhandSnake

Well-Known Member
Established Member
Joined
Jan 29, 2011
Messages
1,759
Location
Columbus, IN
Got a chance to bench test the output side. I checked them with LEDs first, then hooked to the car. Note: you'll need to have everything hooked up to the car power supply, can't have it hooked to the USB for testing. It seems to work pretty well. I was able to sweep through the duty cycle commands and the pump responded. It would just click at 20%, so I might need to bump the lower speed clip to 21% or higher.

The time based speed seems to be quicker than it should be. This only really affects the diagnostic output. I'll either need to correct the processor speed, or I can just adjust the values until it's correct.

Next up- I'll need to solder up some of the connections to be more permanent and get ready for a "live" test with the car running.

P1040233.JPG

 

Users who are viewing this thread



Top