DIY PWM controller?
The theory, is to use a weld-in fuel ring in my existing steel baffled tank, a 2010 Tahoe pwm-capable fuel pump module, a GM fuel pressure sensor on the fuel line, a Cytron md20a pwm motor controller, and an arduino to control everything.
Is it as simple as wiring that up, and writing a simple program that adjusts the pwm signal to maintain a constant 58-psi on the fuel rail? I know there are off-the-shelf setups available for purchase, but I'm specifically wondering if something DIY like this has a decent chance of working or not.
Would the arduino program need to know the current throttle position so it can ramp up the pump speed a little in advance? Do the 2010-etc pwm fuel pump modules include a pressure accumulator?
i built my own DBW controller from scratch with a similar but smaller dc motor controller and a esp32. i spent more saturdays collecting and studying data curves than id like to admit but it mostly works well now.
hindsight from several pid related projects over the years though, i dont think a PID controller works for anything but controlling the temperature of liquids. every application ive used them in they suck ***.
also you can use any pump. i currently pwm a walbro 525 with my haltech and it works great. it is not a closed loop system without a mechanical regulator, it just runs the pump just slow enough at idle and cruise to maintain pressure and runs the duty cycle up with boost or tps (i dont remember which i set it up with)
Edit: If a pressure accumulator in the system is large enough, than the pressure could likely be maintained within a few psi of optimal using the pressure sensor alone. But I don't know how large the built-in accumulator is in the GM fuel pump module, or if there's even one there at all.
Trending Topics
The Best V8 Stories One Small Block at Time
The theory, is to use a weld-in fuel ring in my existing steel baffled tank, a 2010 Tahoe pwm-capable fuel pump module, a GM fuel pressure sensor on the fuel line, a Cytron md20a pwm motor controller, and an arduino to control everything.
Is it as simple as wiring that up, and writing a simple program that adjusts the pwm signal to maintain a constant 58-psi on the fuel rail? I know there are off-the-shelf setups available for purchase, but I'm specifically wondering if something DIY like this has a decent chance of working or not.
Would the arduino program need to know the current throttle position so it can ramp up the pump speed a little in advance? Do the 2010-etc pwm fuel pump modules include a pressure accumulator?
Edit: If a pressure accumulator in the system is large enough, than the pressure could likely be maintained within a few psi of optimal using the pressure sensor alone. But I don't know how large the built-in accumulator is in the GM fuel pump module, or if there's even one there at all.
OEMs do it, have been doing it for a long while actually (Ford been doing it since the 1999 Mustang)... and now I'm trying to figure out how to do it one a swap car.
Any chance you followed through on this?
If I were to try to DIY the system the OP asked about, I'd start with a single direction PWM motor controller and add an Arduino to control the pressure. The arduino would be running a PID (standard feedback control).
I'd start with something like this.
Keep in mind I don't have one of these. But it looks like it's a single direction drive with relays to reverse the direction. First thing I would do is get rid of the relays and solder a permanent jumper in place to set the direction, You never need to reverse it.
For speed control, it appears to have a pot that you can manually dial in the PWM, but we know that won't work right. So instead, I would connect a resistor and capacitor to one of the arduino PWM ports and have it become an D/A (digital to analog) signal replacing the potentiometer. Then add a pressure sensor that is input to the PID routine that changes the PWM to the D/A out.
Needless to say, the more of an accumulator in your fuel circuit, the smoother the fuel pressure should be.
You might also want to add a map sensor input to increase or decrease the target fuel pressure based on the map.
Some might think about using DC Solid State Relay (SSR) but I think they can't handle the high frequency switching needed.
I don't know the frequency that the motor driver above works at. If it's relatively low, then you might get a noisy fuel pump. That's why I went with the fan controller in mine, it runs at 20khz and is very quiet, which I like cause I cruise the car alot.
Last edited by LSswap; Jun 5, 2025 at 10:29 PM.
.
I followed LSswap´s suggestion and hooked up the very same PWM controller from the picture above to an arduino UNO just like he said to do some initial testing. For now I am using my DIY fuel supply module with a 255lph pump and a needle valve at the end of a #6 hose to recreate different fuel demand scenarios. A pressure sensor supplies feedback for pump speed control.
Initial results are looking good.
The most time consuming part has been finding the correct PID controller parameters.
My fuel supply module.
Did you happen to measure the PWM output frequency?
Are you controlling it with an analog output voltage like and R/C circuit, or just with a PWM?
Of course in the car, you will get rid of all those breadboards and solder everything. PM me, I've got something for you.
I am using an RC circuit with a 10K resistor and 10 mfd capacitor as a D/A converter.
FWIW, my other fun car is a Subaru, and they use a combination of regulator and PWM. Only three duty cycle options are used: 33%, 66%, or 100%. There is still a regular mechanical FPR, so the idea seems to be just to let the pump run cooler when high power isn't needed - which for a street car is the majority of the time. So you get the aforementioned benefits of PWM, but with a very simple control strategy for the electronics because the regulator does a precise enough job on its own.
I don't remember the details of how it's tuned but it's IIRC it's basically just a combination of thresholds that push it to higher PWM settings. Maybe RPM, MAP, and battery voltage? Something like that.
Since I'm running it off battery and there is never a need for going in reverse, I unsoldered the two relays and permanently set the direction one way only. That also leaves more space next to the heatsinks for cooling, win win.
I also got rid of the on/off switch, cause if the battery is plugged in, it's on. I also drive it with a PWM from an arduino R/C circuit that imitates the action of the potentiometer that I no longer use. Also I don't need the display so that's unplugged.
All in all, I'm impressed by this unit, something I don't say often for Chinese power stuff. I would use it for a fuel pump application. I would still shunt it with a relay at full power, just to make sure there are no losses and the pump gets every bit of the battery voltage. I also think it will work fine for controlling extra fans.
I'm going to buy one more of these to control the feed on my milling machine.











