Jump to content
  • Welcome To Mopar1973Man.Com LLC

    We are a privately owned support forum for the Dodge Ram Cummins Diesels. All information is free to read for everyone. To interact or ask questions you must have a subscription plan to enable all other features beyond reading. Please go over to the Subscription Page and pick out a plan that fits you best. At any time you wish to cancel the subscription please go back over to the Subscription Page and hit the Cancel button and your subscription will be stopped. All subscriptions are auto-renewing. 

He351ve stand alone Arduino controller code for 2nd Gen Cummins


Recommended Posts

hmmm, thanks for testing, you don't have to worry about it anymore.  I thought it would be a simple way of doing it that would run faster, and control it better.  But I guess it's not as simple as I thought.  Maybe later I'll grab my uno and a couple pots and play with it myself.  Thanks again.

Link to comment
Share on other sites

I will toy with a bit more when I get some free time, I am curious to understand what you are trying to do. 

 

I have it working REALLY well at this point with my pots.   I will have to take a video.  The pot push pull switch combo is awesome. 

Link to comment
Share on other sites

Please do!  I'd love to see it work!

 

It's pretty much just DesiredPosition += ExhaustPressure-BoostPressure;.  So if ExaustPressure is higher, it will increase DesiredPosition by the PSI difference.  But if Boost is higher. it will return a negitave number and decrease DesiredPosition by the PSI difference.

Link to comment
Share on other sites

Got ya,

 

Google decided to update their map API last night so we are scrambling to get things put back together at work.  I will look into it more after the duct tape is applied to google inflicted knife wounds.

 

CowBoy,

 

I think Is see the issue with the EB manage

 

void EBManage(){
  //Trying to avoid using floats as they are slower to do math with, change if need be.
  const int Calibration = 2; //This is how much the viens will move based off the pressure difference.
 
int Difference = (ExhaustPressure-MaxExhaustPressure);
 
Difference = (Difference * Calibration);
DesiredPosition += max(Difference, -20);//This way it doesn't close the veins to fast
}

 

Looking up "max" It says that max will choose the value of the two that is bigger (diff or -20)

 

Lets plug some basic numbers iDP=40 max=45 desirepost pos would be 253 as you would be offboost mostly when applying eb

 

dif= (40-45)

-5=(-5*2)

 

desiredpos = 253 + ( -10 or -20) or  243

 

 

Is my thinking right?  Still doesn't really reflect what my testing showed though.  very odd.

 

 

As for

 

void BtoDPressureManage(){
  //Trying to avoid using floats as they are slower to do math with.
  const int Calibration = 2; //This is how much the viens will move based off the pressure difference.
  const int DesiredBDPRatio = 100; //this is percent, 100% means you want boot:DP 1:1. 90% = .9:1.  
 
int Difference = (ExhaustPressure-((BoostPressure*100)/DesiredBDRatio));
 
DesiredPosition += (Difference * Calibration);
}

 

Lets use dp =5 and bp = 1 desirepos = 235 ( since we are at 1 psi)

 

5-((1*100)/100)= 4 = dif

 

despos = 235 + ( 4*2)  so it is increasing vein pos when dp is higher than bp which is what we want. 

 

I will have to test that again on the bench, because it should be working... I think

 

EDIT:

 

Wait no it wouldn't as the boostcalc isn't being applied so we have no starting point do we?

Link to comment
Share on other sites

Yes, IDK what would be the best way, but I was thinking on constraining Desired Position so the viens are forced to make some back pressure.... IDK the best way of going about it.  I got some time tonight, I'll setup a "test bench" and see how things work.  Once I get my code working I'll let you know.  as of right now, your "down and dirty" way is likely the best, and my old ebManage was working well.  So I say go with that.

 

I'm curious, what all things do you want this project to have when you're done?  LCD?  LCD menu?  SD card?  Different sensors? 

 

As for as your thinking on the new EBManage.  That is exactly the same as my thinking, even put everything in a speadsheet the other day and that's exactly what I got.  So IDK why it's not working.  Like I said, I'm building a test bench for it.

Link to comment
Share on other sites

Really all I want out of it is a lcd screen ( ordered)  do display boost, drive, and current vein position.

 

Other than that I just want the controller to run the turbo, I don't care about much more.

 

 

I am uploading a video now.  

 

I am gonna mess some more with your new stuff, I can't see why it wouldn't work so it might be an issue with my setup, I had some noise coming across a pot that was making things act weird.

Link to comment
Share on other sites

I finally got it going, was having issues with the arduino IDE, and then other issues that weren't related to the newest code.  Everything works good now.  I don't have a turbo here, so I just serial.print all the values.  But it's all acting as it should.

 

Though there is the aspect of how exactly your going to control the veins.  Just asking for 1:1 isn't going to work very well I don't think.  So maybe your "down and dirty" way is actually the better way after all lol.  I'm curious how Ed has it setup...
:

Link to comment
Share on other sites

  • Owner

I don't have my code any longer, due to a hard drive crash. I went & tried to pull it off the arduino & no go. It's all in code. I'll try to disassemble it with Hexrays.

 

Ed

 

Now you know why I run dual hard drives. Primary is setup for operation of the OS and software. The secondary drive is setup for weekly backup. Always love when Linux throws a banner up stating a hard drive is going to fail soon please back up now. Really nice when you go through you old hard drive to test and SMART pick up right away in Linux setting the warning.

Link to comment
Share on other sites

Now you know why I run dual hard drives. Primary is setup for operation of the OS and software. The secondary drive is setup for weekly backup. Always love when Linux throws a banner up stating a hard drive is going to fail soon please back up now. Really nice when you go through you old hard drive to test and SMART pick up right away in Linux setting the warning.

 

:lmao:

 

Now you know why I run a raid 0 + 1 with 8 drives haha I can currently lose up to 2 drives, hot swap a new one in and keep going on my merry way. 

 

 

That and I run Sata  enabled Scsi's :tongue: I have yet to have a Scsi actually fail fail on me. 

 

 

Ed,

 

You can pull the code off in Atmel AVR machine code then spend 15 years becoming a low level coder to get it back........ might be worth it?

Link to comment
Share on other sites

Cool to see this working on the turbo. I did some research and talked to a turbo guy and for what I'm doing a he351ve won't work to well.

I would have really liked to put one on and tune it just for the fun of it but it would be to restrictive on the exhaust side for my plans. Plan was to mod a he351ve with a 63mm billet comp wheel and a 64mm turbine wheel but I guess they don't breath to well even with the vanes open so I'm sticking to my original plan of running a hx35 with a 63mm billet comp wheel 67mm turbine wheel with a 14cm hx40 exhaust housing.

Link to comment
Share on other sites

You could just map the sensor to -14.7 to 100.  My boost sensors are .5 volt at 0 PSIG. and 4.5 volts at 100 PSIG.  So I mapped mine like; map(Boost, 0, 920 , -12.5, 100);

 

Also, as far a different altitudes thing.  I'm curious if it would even make a difference.  I mean, it's not like our wastegates open earlier at higher altitudes.  I'll have to either do testing, or contact the manufacturer.

Link to comment
Share on other sites

×
×
  • Create New...