Fueling & Injection Fuel Pumps | Injectors | Rails | Regulators | Tanks

Suggestions for paramaters on custom fuel fail-safe on boosted engine?

Thread Tools
 
Search this Thread
 
Old 12-07-2017, 07:44 AM
  #1  
On The Tree
Thread Starter
iTrader: (1)
 
MEAN GTO's Avatar
 
Join Date: Jul 2007
Location: Southern MD
Posts: 180
Likes: 0
Received 0 Likes on 0 Posts

Default Suggestions for paramaters on custom fuel fail-safe on boosted engine?

Hi everyone, sorry if the title is a little confusing, but here's the scenario. I have a 2005 GTO with a custom twin turbo setup, and I just finished dropping in a brand new forged 6.0. I also installed a Walbro 450 fuel pump and I want to put together a fail-safe in the event that I have a lean condition at a moment that I shouldn't (ie: while under heavy throttle, versus each time I let off the throttle).

I have the following components that I was considering using to make this happen:

-LC-1 wideband controller (I'm going to use an analog output)
-AMS 1000 boost controller
-Lingenfelter Launch Controller (LNC-001)

I have a basic program written for an Arduino that will handle the various inputs (using IF/THEN/ELSE statements) and, in-turn, will control a relay. That relay will send a voltage and/or ground output to be used as a trigger. So for example:

If voltage from LC-1 analog output is equal to or greater than "X" (I can write any voltage here), then send output to the pin for the relay's trigger. The relay can then send a voltage or ground signal to the "Reduce Boost" input on the boost controller, and the boost controller will activate the solenoids to dump as much as boost as the wastegates can dump. I would force this trigger for approximately 5 seconds, each instance that the car runs lean. I would also trigger a warning LED to illuminate for this 5-second period, so I know there's definitely a problem.

There's two problems with the above scenario:

1. I run 8 PSI springs in my wastegates, and usually only run a maximum of 11-12 PSI. If I'm only dumping 3-4 PSI during a lean condition, I fear that won't be enough.

2. Watching my AFR gauge, every time I let off the throttle the gauge pegs lean for at least one second or so, often for longer. This is maybe not EVERY time I let off the throttle, but usually when there was at least a little load or RPM before I let off the throttle. This would mean I would have the warning LED lighting up for 5 seconds each time I let off the throttle, while the solenoids are simultaneously trying to open the wastegates. This is obviously not a desired scenario.

To resolve issue #1, I was thinking of also simultaneously triggering my launch controller at the same time as the boost controller. My launch controller is set to around 2900 RPM, so in the event that I have a lean condition I can cut spark and force the engine down to 2900 RPM. Would this be a suggested thing to also do, in conjunction with reducing boost?

For issue #2, I obviously need to separate just having a lean condition from having a lean condition while under load or a decent amount of throttle. So the next thought is to not only look for a lean condition, but look for a lean condition when the throttle position sensor is at 50% or more throttle (whatever voltage that equates to... perhaps 2.5 volts??), and maybe even look at RPM. I was considering adding RPM into the equation because if I'm holding a gear and let go of the throttle but the RPM hasn't worked it's way down quickly enough I can hopefully still prevent detonation. Thoughts on tying the TPS value and maybe also the RPM in the the trigger for the lean condition???


To recap, if I did all of the above, here's what the plan would be:

IF TPS is equal to or greater than 50% (again, whatever voltage that equates to)
OR if RPM is greater than or equal to 4,000 (or whatever RPM is suggested to be critical in a lean condition)
AND if AFR is greater than or equal to xx volts (depending on what AFR I want to consider critical)
THEN trigger boost controller to pull boost for 5 seconds
AND trigger launch controller to pull spark for 5 seconds
AND illuminate warning LED for 5 seconds
ELSE do nothing


What are your guys' thoughts on the above? Any suggestions/modifications or anything else I should consider??

Please refrain from suggesting an aftermarket PCM. I would still need to figure out what I want to do, and when I want it to happen with an aftermarket PCM (to the tune of $2,000+), just as I'm looking to do with this $35 Arduino module.

Thanks everyone!

-Andrew
Old 12-07-2017, 07:50 AM
  #2  
TECH Senior Member
iTrader: (96)
 
01ssreda4's Avatar
 
Join Date: Aug 2007
Location: Turnin' Wrenches Infractions: 005
Posts: 24,241
Likes: 0
Received 79 Likes on 70 Posts

Default

I would base it on TPS and AFR.
Old 12-07-2017, 12:40 PM
  #3  
TECH Fanatic
iTrader: (1)
 
Crf450r420's Avatar
 
Join Date: Apr 2013
Location: Florida
Posts: 1,105
Received 4 Likes on 4 Posts
Default

I'll just add that you can make timing changes happen in microseconds so if you can reduce timing or stop spark it will be the quickest and most effective way to save your motor. Boost will take time to reduce, but you could pull timing before the next cylinder fires.
Old 12-09-2017, 11:49 AM
  #4  
On The Tree
Thread Starter
iTrader: (1)
 
MEAN GTO's Avatar
 
Join Date: Jul 2007
Location: Southern MD
Posts: 180
Likes: 0
Received 0 Likes on 0 Posts

Default

Originally Posted by 01ssreda4
I would base it on TPS and AFR.
Thanks for the input! My concern with not including RPM into the conditions is what if I were, for instance, holding 2nd gear but only giving the car 15% throttle and had a lean condition? That wouldn't trigger the relay to take action (pull boost and spark), and would still risk detonation wouldn't it? Or if I had a lean condition at the peak of my RPM range after letting off the throttle, but RPM is coming down too lowly since I'm still in second gear and I'm still lean. What do you think? Just trying to make sure I cover all the bases if I do this. Thanks again!!


Originally Posted by Crf450r420
I'll just add that you can make timing changes happen in microseconds so if you can reduce timing or stop spark it will be the quickest and most effective way to save your motor. Boost will take time to reduce, but you could pull timing before the next cylinder fires.
Thanks! Yeah that's a valid point, and if I trigger my launch controller under a lean condition I do have it set to remove timing too (I forget how many degrees), so I guess that should work out pretty well. Thanks!
Old 12-09-2017, 04:04 PM
  #5  
Restricted User
 
JoeNova's Avatar
 
Join Date: Mar 2014
Location: Ohio
Posts: 7,194
Received 104 Likes on 87 Posts
Default

Why not tap into the signal on the MAP sensor? Its just a 0-5v signal. It wouldn't be any different than reading AFR or TPS. Just set it so if you MAP volts > x and AFR volts > x, it pulls timing, reduces boost, turns off the ignition, whatever. Just use a single IF/AND.

use the map function to map a 0-5v input from 0-1023 to your MAP sensor. So if its a 3 bar map sensor and your 0-5v wideband is 10-20 AFR:

Code:
MAPvolts = analogRead(1)
AFRvolts = analogRead(2)

Loop{
int kpa = map(MAPvolts,0,1023,0,315)
float afr = map(AFRvolts,0,1023,10,20)
if (kpa > 150 && afr > 13.5)
{ Do things here }
This resolves both issue #1 and issue #2.

My corvette has so many fail safes and automated things in it that it makes my head spin. Something like this is child's play.
Old 12-09-2017, 06:39 PM
  #6  
On The Tree
Thread Starter
iTrader: (1)
 
MEAN GTO's Avatar
 
Join Date: Jul 2007
Location: Southern MD
Posts: 180
Likes: 0
Received 0 Likes on 0 Posts

Default

Hi Joe thanks so much for the advice!! And thanks for the code! So your thought is to use boost as the second condition (in conjunction with AFR as the other condition)... that's actually a good thought! And then I can have a separate condition where IF MAP volts > x then do the things.... because I have accidentally over-boosted an engine before and would be nice to prevent damage from that too.

The one thing I'm still concerned about though is deceleration while holding a gear. If I have a lean condition but I'm not making boost at the time shouldn't I still be concerned about harming the motor if the RPM is high?

Thanks again!!!!
Old 12-09-2017, 07:10 PM
  #7  
Restricted User
 
JoeNova's Avatar
 
Join Date: Mar 2014
Location: Ohio
Posts: 7,194
Received 104 Likes on 87 Posts
Default

Your wideband is supposed to go full lean when you let off the throttle. That is what the decel fuel cutoff is for in the PCM, to turn fuel off when you let off the throttle in gear. Don't worry about what the AFR says while you're not using the throttle.


If you want all of these to do the same action, then create a new function that operates outside of the loop.

call it failsafe or something similar.

Code:
Void failsafe()
{//Cut timing, cut boost, shutoff ignition, etc here}

Void Loop()
{
MAPvolts = analogRead(1)
AFRvolts = analogRead(2)
TPSvolts = analogRead(3)

int kpa = map(MAPvolts,0,1023,0,315)
float afr = map(AFRvolts,0,1023,10,20)
int tps = map(TPSvolts,0,1023,0,100)

if (kpa > 150 && afr > 13.5) failsafe();
if (tps > 90 && afr > 15) failsafe();
if (tps < 50 && kpa > 150) failsafe();
if (kpa > 220) failsafe();
}
I have mine setup to log fuel pressure and cut boost/timing if I lose pressure while in boost, shut off ignition if oil pressure hits 0, etc. I bought a LOT of the super cheap chinese arduino Nano from ebay and have them controlling soooooo many things in my cars.
Old 12-10-2017, 09:20 PM
  #8  
On The Tree
Thread Starter
iTrader: (1)
 
MEAN GTO's Avatar
 
Join Date: Jul 2007
Location: Southern MD
Posts: 180
Likes: 0
Received 0 Likes on 0 Posts

Default

That's really helpful stuff Joe! Thanks for the explanation on the decel cutoff... that explains everything. And thanks a ton for the code. I've been doing some PowerShell stuff with Windows lately and I do like how you laid that out. Very clean and understandable.

I was considering adding a sensor within a few feet of line from the rails, and pull boost/timing/spark if it drops low during a bit of throttle. Any suggestions on what I may want to use for a fuel sensor that has a 1/8" NPT fitting?

It's great to see that someone else on here is using Arduino modules in their car for stuff like fail-safe modules and such! Mind if I ask what other cool things you're doing, fail-safe modules or anything else, besides what you've mentioned so far? Would really like to see what else I may be interested in doing and can maybe get some ideas from you, if you wouldn't mind. I have a Nano and a couple of Uno modules right now, and LCD display and some other stuff that I'm going to have to get around to tinkering with in the new year
Old 12-10-2017, 10:46 PM
  #9  
Restricted User
 
JoeNova's Avatar
 
Join Date: Mar 2014
Location: Ohio
Posts: 7,194
Received 104 Likes on 87 Posts
Default

Ebay has 0-5v 100 PSI stainless pressure sensors for like $20 that are 1/8" NPT. I use them for fuel pressure, water, oil, pre/post intercooler, etc.

Arduinos have taken over my corvette. 2 Nanos and a mega.

Nano 1 controls ignition. Nothing in the car gets power until you flip a toggle switch to turn on the arduino. From there, you have to scan your fingerprint before the push-button start will work. It also controls the fail safes (since it controls ignition) and shuts off the ignition if there is excess water pressure from a lifted head, zero oil pressure while running, etc.

Nano 2 does paddle shift/traction control/boost control.
My paddle shifters for my TH400 are connected to it. A stepper motor shifts the trans for me. A small LCD screen is used as a gear indicator. I can control the PWM boost solenoid to do boost by gear, boost by time, boost by speed, etc. I also read the front/rear ABS sensors for traction control. I can reduce boost based on how much faster the rear wheels are spinning than the fronts, or force microsquirt to switch to a spark table with less advance to cut more power.

The Mega is a piggyback for microsquirt, since micro doesn't have enough input/output to do anything. I read CANBUS data from micro, and do things based on the data. For example, I read TPS/RPM/CLT and use the mega to control my IAC valve (micro doesn't control IAC). It also kicks on the electric fans for me, turns on my water/meth injection, does nitrous control (if I decide to use nitrous). I can also give it sensor data like oil and fuel pressure and send them back to microsquirt and it will datalog them right alongside everything else. And it controls the 7" LCD that is my gauge cluster.


So yeah, it has basically been taken over by arduino.
I just made a fuel injector tester last week that is pretty badass and I'm slowly thinking of new projects.

https://www.youtube.com/channel/UCJ6...aKBaK3shsXkJmw
Old 12-11-2017, 09:33 AM
  #10  
12 Second Club
iTrader: (10)
 
98redorangeta's Avatar
 
Join Date: Sep 2005
Location: From Ohio now in that state up north
Posts: 948
Received 0 Likes on 0 Posts

Default

Pretty helpful info in here for fail safes thanks JoeNova.
Old 12-11-2017, 12:39 PM
  #11  
Restricted User
 
JoeNova's Avatar
 
Join Date: Mar 2014
Location: Ohio
Posts: 7,194
Received 104 Likes on 87 Posts
Default

Pretty easy to expand on that. Lets say you want the failsafe to be engine shut-off.

Power the arduino from 12v key power using a 12v-5v step-down converter.
Pass the 12v power wire (pink) for the ignition coils through a single relay module for arduino, so that when you key on, the relay comes on, and the failsafe will be to turn it off.

This code will shut off the ignition coils if anything goes wrong:
AFR signal to A0
TPS signal to A1
MAP signal to A2
Fuel pressure signal to A3
Oil pressure signal to A4
Water pressure signal to A5
Relay signal to Digital Pin 1

I'm doing this on my computer without the Arduino IDE and I can't edit posts, so if theres a typo, sorry.
Code:
pinMode (1,OUTPUT);

Void Setup()
{
digitalWrite(1,HIGH);
}

Void failsafe()
{
digitalWrite(1,LOW);
}

Void Loop()
{
AFRvolts = analogRead(A0);
TPSvolts = analogRead(A1);
MAPvolts = analogRead(A2);
FPRvolts = analogRead(A3);
OPRvolts = analogRead(A4);
WPRvolts = analogRead(A5);

int kpa = map(MAPvolts,0,1023,0,315);
float afr = map(AFRvolts,0,1023,10,20);
int tps = map(TPSvolts,0,1023,0,100);
int fpr = map(FPRvolts,0,1023,0,100);
int opr = map(OPRvolts,0,1023,0,100);
int wpr = map(WPRvolts,0,1023,0,100);

if (kpa > 150 && afr > 13.5) failsafe();
if (tps > 90 && afr > 15) failsafe();
if (tps < 50 && kpa > 150) failsafe();
if (kpa > 220) failsafe();
if (kpa >150 && fpr < 40) failsafe();
if (wpr > 50) failsafe();
if (opr < 10 && kpa > 30) failsafe();
delay(50);
}
$10 should afford you an arduino nano and a single relay module.
It'll probably be one of the best $10 you spend on your car.
Old 12-11-2017, 01:14 PM
  #12  
12 Second Club
iTrader: (10)
 
98redorangeta's Avatar
 
Join Date: Sep 2005
Location: From Ohio now in that state up north
Posts: 948
Received 0 Likes on 0 Posts

Default

Couldn’t send you a pm don’t want to hijack but just got my Arduino stuff and starting to play with it glad there is so much support and people willing to help out.
Old 12-11-2017, 02:19 PM
  #13  
Restricted User
 
JoeNova's Avatar
 
Join Date: Mar 2014
Location: Ohio
Posts: 7,194
Received 104 Likes on 87 Posts
Default

Yeah I'm in Tech prison so I can't do PMs lol.
Old 12-11-2017, 02:21 PM
  #14  
TECH Senior Member
 
G Atsma's Avatar
 
Join Date: Jun 2016
Location: Central Cal.
Posts: 20,868
Received 3,019 Likes on 2,350 Posts
Default

What naughty thing did you do Joe?? You sound like a fairly reformed inmate to me.... lol
Old 12-11-2017, 02:27 PM
  #15  
Restricted User
 
JoeNova's Avatar
 
Join Date: Mar 2014
Location: Ohio
Posts: 7,194
Received 104 Likes on 87 Posts
Default

I was advertising LS swaps in my signature at one point lol. I didn't realize that the non-vendor policy included labor. Now I'm not allowed to PM, subscribe to threads, use the classifieds section, view attachments. Yeah it sucks and its been over a year now.
Old 12-11-2017, 04:21 PM
  #16  
TECH Senior Member
 
G Atsma's Avatar
 
Join Date: Jun 2016
Location: Central Cal.
Posts: 20,868
Received 3,019 Likes on 2,350 Posts
Default

Bummer! How long a sentence is/was it? I think you deserve parole, if not a pardon!
Or at least time off for good behavior. Seem like you've been pretty civil, plus put a LOT of knowledge into these forums!
Old 12-12-2017, 10:12 AM
  #17  
Restricted User
 
JoeNova's Avatar
 
Join Date: Mar 2014
Location: Ohio
Posts: 7,194
Received 104 Likes on 87 Posts
Default

AFAIK, its permanent.
Which is why I usually post a lot of the more technical things like this on other forums. Because I don't get any notifications when someone posts question (so they go unanswered) or needs to send a PM for something more specific.
Old 12-12-2017, 11:00 AM
  #18  
TECH Senior Member
 
G Atsma's Avatar
 
Join Date: Jun 2016
Location: Central Cal.
Posts: 20,868
Received 3,019 Likes on 2,350 Posts
Default

Well, please stick around, as I do appreciate your input and common-sense attitude on most stuff around here. I myself have learned a lot from you!
Old 12-12-2017, 02:06 PM
  #19  
On The Tree
Thread Starter
iTrader: (1)
 
MEAN GTO's Avatar
 
Join Date: Jul 2007
Location: Southern MD
Posts: 180
Likes: 0
Received 0 Likes on 0 Posts

Default

Originally Posted by JoeNova
Ebay has 0-5v 100 PSI stainless pressure sensors for like $20 that are 1/8" NPT. I use them for fuel pressure, water, oil, pre/post intercooler, etc.

Arduinos have taken over my corvette. 2 Nanos and a mega.

Nano 1 controls ignition. Nothing in the car gets power until you flip a toggle switch to turn on the arduino. From there, you have to scan your fingerprint before the push-button start will work. It also controls the fail safes (since it controls ignition) and shuts off the ignition if there is excess water pressure from a lifted head, zero oil pressure while running, etc.

Nano 2 does paddle shift/traction control/boost control.
My paddle shifters for my TH400 are connected to it. A stepper motor shifts the trans for me. A small LCD screen is used as a gear indicator. I can control the PWM boost solenoid to do boost by gear, boost by time, boost by speed, etc. I also read the front/rear ABS sensors for traction control. I can reduce boost based on how much faster the rear wheels are spinning than the fronts, or force microsquirt to switch to a spark table with less advance to cut more power.

The Mega is a piggyback for microsquirt, since micro doesn't have enough input/output to do anything. I read CANBUS data from micro, and do things based on the data. For example, I read TPS/RPM/CLT and use the mega to control my IAC valve (micro doesn't control IAC). It also kicks on the electric fans for me, turns on my water/meth injection, does nitrous control (if I decide to use nitrous). I can also give it sensor data like oil and fuel pressure and send them back to microsquirt and it will datalog them right alongside everything else. And it controls the 7" LCD that is my gauge cluster.


So yeah, it has basically been taken over by arduino.
I just made a fuel injector tester last week that is pretty badass and I'm slowly thinking of new projects.

https://www.youtube.com/channel/UCJ6...aKBaK3shsXkJmw
Wow, you weren't kidding! That's quite the elaborate setup, and I definitely like what you have done! Would love to see how to do your boost controller stuff. Would be awesome for me to be able to ditch my AMS-1000

I am going to do like you, and add fuel pressure into the equation. I just ordered a nice 0-5v stainless pressure sensor. I think I'm going to use my Uno instead of my Nano for it, because I like the ability to put a case on the Uno. I ordered a black case for it and it came in yesterday so I'll probably play with some various code over the weekend to test things and if everything seems to work I'll solder up the wires and have my first fail-safe together. Pretty excited and more confident about approaching this thanks to you.

I saw your video on the fuel injector test and that was pretty cool! Looks like you've learned to do some really cool stuff! Thanks again for your help and sharing your knowledge with me/us
Old 12-12-2017, 05:11 PM
  #20  
Restricted User
 
JoeNova's Avatar
 
Join Date: Mar 2014
Location: Ohio
Posts: 7,194
Received 104 Likes on 87 Posts
Default

Arduino can do PWM control for 3/4 port boost solenoids, so making something better than the AMS shouldn't be that hard to do given the right inputs and lots of practice with programming.


Quick Reply: Suggestions for paramaters on custom fuel fail-safe on boosted engine?



All times are GMT -5. The time now is 08:08 PM.