Jump to content

Cowboy

Unpaid Member
  • Joined

  • Last visited

Everything posted by Cowboy

  1. Glad to hear everything's working OK, been working on a coding project of my own so don't have any new code for you lol. If you end up needing more speed out of the program, there are a couple pieces in my code that would benefit from some optimizing that I could try and change a bit. If it was opening/closing to fast. You might want to change the -10 to something closer to 0. DesiredPosition += max(Difference, -10);//This way it doesn't close the veins to fast
  2. I've already got your "Tow mode" etc in the making lol. I can link up the current code, but I have to warn you, most of this was thrown together after midnight, and there was a lot of copy pasting from some of my previous projects. So some of the variable names won't make sense. The menu also isn't really done yet, I still need to grab the variables from EEPROM on startup. Otherwise all your settings go back to default every time you restart the truck. I'll see if I can get some work done to it still tonight, I'll edit this post with what I got in the morning. OK here it is. There are a couple things that would need to be done still. Change the button reading stuff over to your style of switch. Add the CAN bus stuff back in. EDIT the LCD stuff to match your LCD. Add some Drive Pressure management to the boost stuff. Redo the 3 boost maps to your liking.... And I'm sure there's more. Also I like using tabs, but I copy pasted it into a single text document, but it should still upload. I've got the different tabs separated by. //TapName////////////////////////////////////////////// VGT-Mine4.txt
  3. A gorgeous young redhead goes into the doctor's office and said that her body hurt wherever she touched it. "Impossible!" says the doctor. "Show me." The redhead took her finger, pushed on her left breast and screamed, then she pushed her elbow and screamed in even more. She pushed her knee and screamed; likewise she pushed her ankle and screamed. Everywhere she touched made her scream. The doctor said, "You're not really a redhead, are you? "Well, no" she said, "I'm actually a blonde." "I thought so," the doctor said. "Your finger is broken."
  4. I think you're right, at least until we get the turbo on the truck to see how it acts.
  5. I got the main stuff attached. Like always, don't feel obligated to use it. VGT ME Menu.txt
  6. Let me know if you're interested in using the code. I tried to make it as "self contained" as possible for my skill level (not much). You got a couple global variables. A MenuSetup(); in the setup loop. and a MenuLoop() in the main loop. Problem I do see is that it's a little more complicated, but if you want it, then I'll comment on everything to make it a little easier to understand. And then if you still have issues figuring it out, you can call or something and I'll explain whatever part you're having issues with.
  7. I got a quick vid of my setup. I'm not sure on the best way of controlling the boost, I was thinking if the boost is under say 5 psi, then go to x position. And then from there the boostToDrive function can take over. IDK, I think it's going to take a lot of playing with and testing. EDIT; crazy idea. If you had RPM also, you could make a pretty decent boost map.... And then all the BtoDPressure Function would do is make sure it stays within a certain range... Crazy thought. I know the RPM is easy to read on the 12 valves. Not sure what kind of sensor the 24 Valves got.
  8. OK Cool, that makes things simpler. I forgot to mention in my last post, That was a really good video, very professional sounding. Though the fact you gave me any credit isn't really correct. It would have been more accurate to say; "Desipite Cowboy on Mopar1973Man.com forum, I have a working test code!" hehe.
  9. 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.
  10. 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... :
  11. 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.
  12. I'm curious. What kind of sensor is the boost sensor? and what kind of signal does it put out?
  13. 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.
  14. 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.
  15. I THINK I found it. I had my head on backwards, so the code was trying to get as far away from 1:1 as possible. And EBManage was trying to get as far from MaxExhaustPressure as possible lol. VGT Code2.txt
  16. I don't mean to fill you full of my buggy code, don't feel obligated to use it at all. I just get this idea about how something could be done, and have to try it out! honestly, it also gives me a break from my SPI issues haha. I found the issue in the EBManage(). The min() should have been max(). So I got the new corrected code attached. I also put the pressure mapped back to 0-100, I was just being too much of an perfectionist before. Did you try the BtoDPressureManage()? did it work OK? EDIT, of course it didn't work lol, try that. Also with this piece (.25*(JumpSize)) whenever you have decimal points, the arduino treats them as a float. Which it doesn't do math with very fast. So (JumpSize/4) would be faster. Probably doesn't matter, but I think it's just good practice. VGT Code2.txt
  17. Thanks, though I got to thinking about it, and thought the new way should be faster, and a little simpler. I edited the above post, decided not to get to fancy, while adding the min() part. What's going on is simple. It's just calculating the difference in PSI to the desired pressure, and changing the desiredPosition based off that.
  18. Needed a break from the snow... brrr. EDIT; couple bugs fixed. Anyhow, I came up with a little less.... Ify. EBManage code. This is stuff I just through together, You'll have to calibrate it a bit to make it so it doesn't lag, or overshoot. The main changes were here; 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/5)* Calibration); DesiredPosition -= min(Difference, -20);//This way it doesn't close the veins to fast } And then I mocked up a function to keep boost and DP at a x:1 ratio, could probably use some constraining for at low RPMs. 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 = (((BoostPressure*100)/DesiredBDRatio)-ExhaustPressure);//actual difference in pressure. 15 = 1.5psi DesiredPosition -= ((Difference/5)* Calibration); } And the last thing I did was instead of calibrating the pressure sensors to 0-100. I changed it to 0-1000, so if gives you a decimal point of precision. The full code is attached, there is likely some new bugs now . VGT Code2.txt
  19. I seen that commercial months ago, I refreshed the page just so I could watch it again!
  20. Drag Racer, That is one CLEAN looking truck! I love the DODGE emblem on the door! Don't have to guess twice about what's in the trailer...
  21. There is a couple ways of doing, one is my way, but that is just cause I'm lazy. The most common way seems to be setting up a shop vac while your drilling and tapping, and then when done put a small magnet down the hole to grab any shavings you can. Haha, My way is the same as Ed's But I stuck a piece of firewood in the exhaust pipe.
  22. That is a very neat letter. I sure hope we can get Jerome on here! Even if we have to make the account for him and then give him the password, It would be way worth it!
  23. I remember a friend says it's bolt on. Take it for what it's worth, which, in this case isn't much considering we have "guy on internet" "memory" and "a friend" all in the same equation.
  24. Besides the Syntax on your array (sorry about that, I was in a hurry and a little short on words lol). EDIT; cancel this last part, I was looking at it wrong. Change; for(byte i=0;(BoostPressureVal > BoostMap[i][0]) && (i<NumEntries); i++) // what you have that's correct To; for(byte i=0;(BoostPressureVal > BoostMap[i][0]) && (i <= NumEntries); i++) // what I suggested that is wrong
  25. Try changing; int ReadBoostPressure() { int BoostVal = analogRead( BoostPressurePin ); // read the value from the sensor return map( BoostVal, 0, 1023, 0, 100 ); // Last two values are the psi range of the choosen sensor } To; int ReadBoostPressure() { int BoostVal = analogRead( BoostPressurePin ); // read the value from the sensor return map( BoostVal, 0, 1023, 0, 50 ); // Last two values are the psi range of the choosen sensor } Or did you do that already? The code in the first post still has the 100. Which would cause your problem. I find programming late at night sometimes has a negative effect. lol And then other times I get on a roll and stay up till 6 am lol.