HomemadeTurbo - DIY Turbo Forum

HomemadeTurbo - DIY Turbo Forum (https://www.homemadeturbo.com/)
-   Forced Induction (https://www.homemadeturbo.com/forced-induction-7/)
-   -   Holset VGT HE351VE Controller (https://www.homemadeturbo.com/forced-induction-7/holset-vgt-he351ve-controller-117261/)

CivicTsi 05-16-2010 01:22 AM


Originally Posted by MiB (Post 1300398)
Why is it so hard to use the factory system?

First, no one wants to buy a CAN bus converter to communicate with it. Second, the engineers that programmed it don't wont to spill the beans on what commands to send it.

CivicTsi 05-16-2010 01:30 AM

If anyone's curious, here's my program; or at least what I have so far. I'm sure the values will have to be changed once installed. Servo position 150 in stopped. 100 is max reverse. 200 is max forward.

setfreq m8
servo 2,150
servopos 2,132
pause 1000
servopos 2,150
pause 50
readadc 0,b5
servopos 2,168
pause 1000
servopos 2,150
pause 50
readadc 0,b6
readadc 2,b1
main:
readadc 0,b0
readadc 2,b1
if b1 > 71 then gosub pos1
if b1 > 74 then gosub pos2
if b1 > 77 then gosub pos3
if b1 > 80 then gosub pos4
if b1 > 83 then gosub pos5
if b1 > 86 then gosub pos6
if b1 > 89 then gosub pos7
if b1 > 92 then gosub pos8
if b1 > 95 then gosub pos9
if b1 > 98 then gosub pos10
if b1 > 101 then gosub pos11
if b1 > 104 then gosub pos12
if b1 > 107 then gosub pos13
if b1 > 110 then gosub pos14
if b1 > 113 then gosub pos15
if b1 > 116 then gosub pos16
if b1 > 119 then gosub pos17
if b1 > 122 then gosub pos18
if b1 > 125 then gosub pos19
if b1 > 128 then gosub pos20
if b1 > 130 then gosub pos21
if b0 < b2 then goto open
if b0 > b3 then goto close
servopos 2,150
pause 50
readadc 0,b0
readadc 2,b1
let b4 = b0 - b2 + 100
goto main
open:
readadc 0,b0
readadc 2,b1
let b4 = b0 - b2 + 100
if b4 > 60 then goto fineopen
servopos 2,168
goto main
close:
readadc 0,b0
readadc 2,b1
let b4 = b0 - b2 + 100
if b4 < 140 then goto fineclose
servopos 2,132
goto main
fineopen:
servopos 2,160
goto main
fineclose:
servopos 2,140
goto main
pos1:
let b2 = 40
let b3 = b2 + 4
return
pos2:
let b2 = 50
let b3 = b2 + 4
return
pos3:
let b2 = 60
let b3 = b2 + 4
return
pos4:
let b2 = 70
let b3 = b2 + 4
return
pos5:
let b2 = 80
let b3 = b2 + 4
return
pos6:
let b2 = 90
let b3 = b2 + 4
return
pos7:
let b2 = 100
let b3 = b2 + 4
return
pos8:
let b2 = 110
let b3 = b2 + 4
return
pos9:
let b2 = 120
let b3 = b2 + 4
return
pos10:
let b2 = 130
let b3 = b2 + 4
return
pos11:
let b2 = 140
let b3 = b2 + 4
return
pos12:
let b2 = 150
let b3 = b2 + 4
return
pos13:
let b2 = 160
let b3 = b2 + 4
pos14:
let b2 = 170
let b3 = b2 + 4
return
pos15:
let b2 = 180
let b3 = b2 + 4
return
pos16:
let b2 = 190
let b3 = b2 + 4
return
pos17:
let b2 = 200
let b3 = b2 + 4
return
pos18:
let b2 = 210
let b3 = b2 + 4
return
pos19:
let b2 = 220
let b3 = b2 + 4
return
pos20:
let b2 = 230
let b3 = b2 + 4
return
pos21:
let b2 = 240
let b3 = b2 + 4
return

Skylar 05-16-2010 02:16 AM

Cheers CivicTsi. Can you rename some things to make it easier to read or just format it with tabs and blank lines? and what is b3?

Skylar 05-16-2010 03:05 AM

Here's my real simple bit of code, it's not all there, just the algorithm to control the servo.

sweeptime = 100 '100ms
Pulsout outpin, sweeptime 'move servo to one side
start:
ADCIN 2, psi 'check boost level on adc channel2 and save to psi
if psi>target then 'compare target to current boost level
sweeptime = sweeptime + 5 'increase servo opening position adds 5ms to sweeptime
pulsout outpin, sweeptime 'output position to servo
pause 15 'pause for servo's sake
goto start 'start all over
else
pulsout outpin, 100 'if boost's below target shut VGT
endif
pause 15 'pause for servo's sake
goto start 'start all over

Shutting the VGT might be a bit to quick and I might need to gradually shut it the same way it opens. I'm thinking with a servo, it won't need continuous self correction/position monitoring in the code because servos should go to their position and hold it. I know some servos hold and some don't and if the servo I have doesn't hold, it gets updated quickly enough (50-60 times a sec) to hopefully not make a difference. I haven't written it yet but I know I need to cap sweeptime to 200 so the servo don't try to break itself.

CivicTsi 05-16-2010 10:36 AM

Sure, I can go through with an explanation. I will a little later today when I have more time. As for the variables:

b0=Pot position
b1=Map sensor
b2=The position desired
b3= The position desired plus a little more, giving it an acceptable range to be in.
b4=The difference between b0 and b2
b5=The Pot position when vane is fully closed after initital startup.
b6=The Pot position when vane is fully open after initital startup.

More to come later..

CivicTsi 05-16-2010 07:28 PM


Originally Posted by Skylar (Post 1300403)
Here's my real simple bit of code, it's not all there, just the algorithm to control the servo.

sweeptime = 100 '100ms
Pulsout outpin, sweeptime 'move servo to one side
start:
ADCIN 2, psi 'check boost level on adc channel2 and save to psi
if psi>target then 'compare target to current boost level
sweeptime = sweeptime + 5 'increase servo opening position adds 5ms to sweeptime
pulsout outpin, sweeptime 'output position to servo
pause 15 'pause for servo's sake
goto start 'start all over
else
pulsout outpin, 100 'if boost's below target shut VGT
endif
pause 15 'pause for servo's sake
goto start 'start all over

Shutting the VGT might be a bit to quick and I might need to gradually shut it the same way it opens. I'm thinking with a servo, it won't need continuous self correction/position monitoring in the code because servos should go to their position and hold it. I know some servos hold and some don't and if the servo I have doesn't hold, it gets updated quickly enough (50-60 times a sec) to hopefully not make a difference. I haven't written it yet but I know I need to cap sweeptime to 200 so the servo don't try to break itself.

What PIC are you using? Also, good luck finding a suitable servo that costs a decent amount of money. All the ones I've seen are either way too weak, or are ridiculously expensive.

CivicTsi 05-16-2010 07:53 PM

setfreq m8 'Set PIC frequency to 8Mhz
servo 2,150 'Activate servo control
servopos 2,132 'Close Vane
pause 1000
servopos 2,150 'Stop Vane
pause 50
readadc 0,b5 'Take position reading and save to memory block b5
servopos 2,168 'Open Vane
pause 1000
servopos 2,150 'Stop Vane
pause 50
readadc 0,b6 'Take position reading and save to memory block b6
readadc 2,b1 'Take MAP sensor reading and save to memory block b1
main:
readadc 0,b0 'Take position reading and save to memory block b0
readadc 2,b1 'Take MAP sensor reading and save to memory block b1
if b1 > 71 then gosub pos1 'If MAP sensor is greater than 71 then temporarily goto pos1, etc.
if b1 > 74 then gosub pos2
if b1 > 77 then gosub pos3
if b1 > 80 then gosub pos4
if b1 > 83 then gosub pos5
if b1 > 86 then gosub pos6
if b1 > 89 then gosub pos7
if b1 > 92 then gosub pos8
if b1 > 95 then gosub pos9
if b1 > 98 then gosub pos10
if b1 > 101 then gosub pos11
if b1 > 104 then gosub pos12
if b1 > 107 then gosub pos13
if b1 > 110 then gosub pos14
if b1 > 113 then gosub pos15
if b1 > 116 then gosub pos16
if b1 > 119 then gosub pos17
if b1 > 122 then gosub pos18
if b1 > 125 then gosub pos19
if b1 > 128 then gosub pos20
if b1 > 130 then gosub pos21
if b0 < b2 then goto open 'If actual position is less than desired position, open vane.
if b0 > b3 then goto close 'If actual position is more then desired position plus 4, than close vane
servopos 2,150 'stop vane
pause 50
readadc 0,b0 'Take position reading and save to memory block b0
readadc 2,b1 'Take MAP sensor reading and save to memory block b1
let b4 = b0 - b2 + 100 'make b4 show the difference between actual and desired position plus 100 to prevent overflow
goto main
open:
readadc 0,b0 'Take position reading and save to memory block b0
readadc 2,b1 'Take MAP sensor reading and save to memory block b1
let b4 = b0 - b2 + 100 'make b4 show the difference between actual and desired position plus 100 to prevent overflow
if b4 > 60 then goto fineopen 'if within 40 of desired position, open at slower speed.
servopos 2,168 'open vane
goto main
close:
readadc 0,b0 'Take position reading and save to memory block b0
readadc 2,b1 'Take MAP sensor reading and save to memory block b1
let b4 = b0 - b2 + 100 'make b4 show the difference between actual and desired position plus 100 to prevent overflow
if b4 < 140 then goto fineclose ''if within 40 of desired position, close at slower speed.
servopos 2,132 'close vane
goto main
fineopen:
servopos 2,160
goto main
fineclose:
servopos 2,140
goto main
pos1:
let b2 = 40 'Make desired positon 40, etc
let b3 = b2 + 4 'Make the desired position plus 4 the highest acceptable tolerance for position
return
pos2:
let b2 = 50
let b3 = b2 + 4
return
pos3:
let b2 = 60
let b3 = b2 + 4
return
pos4:
let b2 = 70
let b3 = b2 + 4
return
pos5:
let b2 = 80
let b3 = b2 + 4
return
pos6:
let b2 = 90
let b3 = b2 + 4
return
pos7:
let b2 = 100
let b3 = b2 + 4
return
pos8:
let b2 = 110
let b3 = b2 + 4
return
pos9:
let b2 = 120
let b3 = b2 + 4
return
pos10:
let b2 = 130
let b3 = b2 + 4
return
pos11:
let b2 = 140
let b3 = b2 + 4
return
pos12:
let b2 = 150
let b3 = b2 + 4
return
pos13:
let b2 = 160
let b3 = b2 + 4
pos14:
let b2 = 170
let b3 = b2 + 4
return
pos15:
let b2 = 180
let b3 = b2 + 4
return
pos16:
let b2 = 190
let b3 = b2 + 4
return
pos17:
let b2 = 200
let b3 = b2 + 4
return
pos18:
let b2 = 210
let b3 = b2 + 4
return
pos19:
let b2 = 220
let b3 = b2 + 4
return
pos20:
let b2 = 230
let b3 = b2 + 4
return
pos21:
let b2 = 240
let b3 = b2 + 4
return

Turboedmav 05-16-2010 08:35 PM

How about using a linear actuator attached to the compressor housing and linked to the VGT arm? They have amazing push/pull forces... I don't think they are that sensitive to high temps as servos seem to be... and if getting the vgt from position "x" to position "y" in less than a second is not really critical... then they could help... couldn't they? (they are on the slow side in terms of actuation speed but compensate with strength)

Those things can lift tens, hundreds and even thousands of times their own weight and would somehow prevent rack seizure by applying generous amounts of force to move the whole thing back and forth... are they overly expensive? Are they readily available in the RC/hobby/DIY robotics world? Do they generate position feedback?

I'm only thinking aloud here... forgive my noob status with these things... I wish I knew how to tinker with microcontrollers myself... damn!... I better get started now... Skylar... I'll take you on that offer to point me in the right direction... from the little stuff I've read, there seems to be a hot debate over which PIC is better for what: Picaxe: Great as an educational tool and easy to program, Arduino: Great variety of "shields" (pre-assembled boards with functions like FM trasreceiver, GPS, bluetooth, etc) and generic PICs: Which from what I understand are tougher to program cause they run on assembler code... honestly, I dont even know if what I've just writen here will make any sense...

Can you mention a few books to get me started on microcontrollers? I bet there's a "Microcontrollers for dummies" ... lol...

CivicTsi 05-16-2010 10:55 PM


Originally Posted by Turboedmav (Post 1300414)
How about using a linear actuator attached to the compressor housing and linked to the VGT arm? They have amazing push/pull forces... I don't think they are that sensitive to high temps as servos seem to be... and if getting the vgt from position "x" to position "y" in less than a second is not really critical... then they could help... couldn't they? (they are on the slow side in terms of actuation speed but compensate with strength)

Those things can lift tens, hundreds and even thousands of times their own weight and would somehow prevent rack seizure by applying generous amounts of force to move the whole thing back and forth... are they overly expensive? Are they readily available in the RC/hobby/DIY robotics world? Do they generate position feedback?

I'm only thinking aloud here... forgive my noob status with these things... I wish I knew how to tinker with microcontrollers myself... damn!... I better get started now... Skylar... I'll take you on that offer to point me in the right direction... from the little stuff I've read, there seems to be a hot debate over which PIC is better for what: Picaxe: Great as an educational tool and easy to program, Arduino: Great variety of "shields" (pre-assembled boards with functions like FM trasreceiver, GPS, bluetooth, etc) and generic PICs: Which from what I understand are tougher to program cause they run on assembler code... honestly, I dont even know if what I've just writen here will make any sense...

Can you mention a few books to get me started on microcontrollers? I bet there's a "Microcontrollers for dummies" ... lol...

Good idea. I've previously researched it and have seriously considered using a linear actuator. However, I found that the cost of a suitable one would run in between $150-200 Dollars (U.S.). There also is the hassle of trying to mount it. Using a Picaxe and an ESC is barely $50.
As for learning how to program a PIC, it's not that hard. 6 months ago I couldn't even tell you what a PIC was. Do what I did and read the manual. Using the program examples in the manual helped a lot. As for Arduino vs. Picaxe, I have no idea which one is better or easier. I think they will both do what you want them to do though.

CivicTsi 05-16-2010 11:03 PM

I'm still working on the PWM route to control the factory electronics. No success yet. I'm doubting more and more that this thing is preprogrammed to additionally accept PWM. I'll give it a few more tries at varying pins and frequencies then I'm just going to concentrate on installing and tuning the system I made. As for boost control, it seems that other people who've put this turbo on gasoline engines have had to install an additional wastegate. I wonder if this is really needed. Perhaps people didn't have the vanes open the whole way in order to decrease boost. Anyone have personal experience with this?

Skylar 05-17-2010 01:10 AM

1 Attachment(s)
CivicTsi, you know about aero's experiences with the turbo right? like this datalog, just look at the top log and disregard the rest:
Attachment 6237

He's using a 9psi actuator on the VGT arm. You can see boost shoots up to 9 psi then the rack opens and the boost builds slowly to 14psi where the external wastegate opens. He says the boost creeps up to 24psi without gate. As for me, my turbo's still sitting in a box outside.

I'm using a PIC16F88, just a little 18 pins chip with ADC's. I do have a 16F877 (40 pin thing with a lotta features) too but I doubt I'll need to use that for this project.

Do you think your system is fast enough to avoid boost spikes or fluctuating boost?

turboedmav, I bought this book and learned most of the stuff to do with PIC's off that. That book focuses on a compiler called PICBasic which is similar to 'basic' programming language or something. It's really simple to use like CivicTsi's PICaxe code. Without PICBasic you'd be programming in assembly code or in C, there's a PIC C-lite compiler in the package I bought but I never bothered to use it since all the documentation I got with the package was for PICBasic Pro. The documentation that comes with the compiler is good enough to get you started but the book is nice as it gives you a few example circuits and set up tips.

Skylar 05-17-2010 01:34 AM

1 Attachment(s)
Here are some calcs as to whether a 1/4 scale servo is up to the task. Does it look right? The maths says it might be enough but depends on arm length. It's a hundred bucks at towerhobbies.
Attachment 6236

Turboedmav 05-17-2010 03:09 AM


Originally Posted by CivicTsi (Post 1300417)
I'm still working on the PWM route to control the factory electronics. No success yet. I'm doubting more and more that this thing is preprogrammed to additionally accept PWM. I'll give it a few more tries at varying pins and frequencies then I'm just going to concentrate on installing and tuning the system I made. As for boost control, it seems that other people who've put this turbo on gasoline engines have had to install an additional wastegate. I wonder if this is really needed. Perhaps people didn't have the vanes open the whole way in order to decrease boost. Anyone have personal experience with this?

I'm also puzzled by this... I talked to "Aero" (the first guy to write about his experience with these turbos on gas engines) on other forums and it seems like installing a wastegate on our engines is a must but I really wonder if it is really necessary with displacements around 2.5 liters given the fact that these little monsters came OEM on 6.7 diesels.

I've tried researching to find out the approximate difference in exhaust gas volumes produced by both gasoline and diesel engines -given the same displacement, that is- with no clear results so far... what I'd like to know is how many more (or less) CFMs come out of a diesel engine vs a gas engine the same size. I know compression ratios in diesels are higher so I'm gessing exhaust flows are higher as well... thing is, I have no idea by how much these flows differ... and if tey're higher in diesels, this contradicts what everybody says about instlling a wastegate in a gas engine... perhaps what makes it necessary is not so much exhaust gas volume but the expansion rate once they leave the combustion chamber... or maybe it is the amount of energy still available in gasoline exhasut to push the turbine vs the diesel's colder exhaust... (dunno really) ... wish I could enlist someone's help who could do the math for me... I'm dizzy already!

If we had this numbers (just ballpark figures) we could then plot them against a turbine map ans have a slightly better understanding of where we stand with our gassers. "Aero" did some investigating and concluded the exhaust AR goes from an incredible 0.14 to a whopping 1.83!!! This is roughly from 3 sq/cm when fully closed to 25 sq/cm when fully open.

Turboedmav 05-17-2010 03:25 AM


Originally Posted by Skylar (Post 1300419)
CivicTsi, you know about aero's experiences with the turbo right? like this datalog, just look at the top log and disregard the rest:
https://i6.photobucket.com/albums/y2...3/Car2/log.jpg

He's using a 9psi actuator on the VGT arm. You can see boost shoots up to 9 psi then the rack opens and the boost builds slowly to 14psi where the external wastegate opens. He says the boost creeps up to 24psi without gate. As for me, my turbo's still sitting in a box outside.

I'm using a PIC16F88, just a little 18 pins chip with ADC's. I do have a 16F877 (40 pin thing with a lotta features) too but I doubt I'll need to use that for this project.

Do you think your system is fast enough to avoid boost spikes or fluctuating boost?

turboedmav, I bought this book and learned most of the stuff to do with PIC's off that. That book focuses on a compiler called PICBasic which is similar to 'basic' programming language or something. It's really simple to use like CivicTsi's PICaxe code. Without PICBasic you'd be programming in assembly code or in C, there's a PIC C-lite compiler in the package I bought but I never bothered to use it since all the documentation I got with the package was for PICBasic Pro. The documentation that comes with the compiler is good enough to get you started but the book is nice as it gives you a few example circuits and set up tips.

Thanks Skylar, I'll start working on learning more about these things, don't want the "noobie" status and puzzled look forever... and it just seems like microcontrollers are in every DIYourselver's future... well, I kew I was just postponing the inevitable...

CivicTsi 05-17-2010 01:33 PM


Originally Posted by Skylar (Post 1300421)
Here are some calcs as to whether a 1/4 scale servo is up to the task. Does it look right? The maths says it might be enough but depends on arm length. It's a hundred bucks at towerhobbies.
http://img.photobucket.com/albums/v2...o3/Picture.jpg

On the left column, what area are you measuring? I'm guessing that is the area of the diaphragm on a conventional wastegate actuator and that 77.5N is the force achieved by it. On the right column, are 2 and 3 cm the radius of the servo's swing? If so, this looks right to me. What is the heat tolerance of your servo?

As for the speed of my system, I think it will do just fine. There is a delay of about 100ms until the vane is homed in on where it needs to be. If not, I guess I'll find out soon.

Tonio 05-17-2010 08:57 PM

I like the linear motor approach...
Here is a quick pic of the Holset compared to a garret 35R or something

http://img139.imageshack.us/img139/3915/dsc0433z.jpg

I'm educating myself on this pic stuff as well in hopes of making a controller. :cool:
Keep up the good work guys.

Skylar 05-18-2010 12:27 AM


Originally Posted by CivicTsi (Post 1300431)
On the left column, what area are you measuring? I'm guessing that is the area of the diaphragm on a conventional wastegate actuator and that 77.5N is the force achieved by it. On the right column, are 2 and 3 cm the radius of the servo's swing? If so, this looks right to me. What is the heat tolerance of your servo?

As for the speed of my system, I think it will do just fine. There is a delay of about 100ms until the vane is homed in on where it needs to be. If not, I guess I'll find out soon.

Yeah, approximating wastegate actuator area on left to get approximate shaft force. Guessing how long the VGT arm on the holset is on the right. It's outside, tucked away, in a box and can't be bothered dragging it out to measure it so I just approximated it as 2cm and 3cm.

Servo heat tolerance: no idea. Their website don't say anything about temps. I found a servo that's cheaper with higher torque with the option of upgrading to robotics servos with even more torque at higher voltage. I'm going to try test out the algorithm and heat tolerance by running a servo in place of the wastegate actuator, mounted off the compressor housing in a similar to what I would like to do with the holset. That way I can sorta get an idea of whether it's going to work (or melt away or not be quick enough) before I install the 351VE.

How big an engine are you planning on running the turbo on? I've got a 1.8 and a 38mm wastegate, you think it'll be enough?

Turboedmav 05-18-2010 08:39 AM

I'm planning on using my HE351VE on a Mexican 2.5 dodge Shadow but... out of curiosity... you guys think using this turbo on a Ford 5.0L is crazy?... I'd be looking into very low boost levels for this stock block and internals (6-10 psi max) ... I asked people in other forums and they said: "it'll spool up stupid fast and behave like a supercharger because of the larger displacement... (not necesarily a bad thing, right?) and it'll be trying to make boost from the very bottom end" ... but I wonder how bad that'll be for the turbo once the engine goes into higher revs? barking? surging? choking? or how badly will it strangle the engine in the top end? even with vanes fully open... umhhh... what you guys think? ... Will I have to fabricate a turbo manifold with multiple leaks on purpose and use a ridiculously restrictive exhaust system to keep the thing from exploding into tiny bits? LOL... just kidding... (or not???) ...

That's why I am interested in knowing more about gas vs diesel exhaust flows... just to get a ball park figure on how this thing might behave on a larger gas engine... I know a huge wastegate will be needed... but ... won´t that mean the turbo will operating out of good efficiency islands most of the time? .... all ideas, feedback and slaps on my head are welcome.

Skylar 05-18-2010 11:10 AM

You have a v8. You already have torque down low and you want more? You's crazy. I'd love to throw a 302 into my RX-7 and leave it NA. but I were to turbo a 302 would run a hx40 or something and not bother with a VGTurbo. Use a 451VE if you really wanted to use a VGTurbo. I'm running this turbo because it makes 400hp+ with much less lag than a conventional turbo.

Super rough calcs from here using this compressor map suggests that the compressor is too small to run 10psi on a 302. It seems perfect for my application though. :)

Turboedmav 05-18-2010 01:33 PM

Damn!!... I'll slap it to the Shadow for sure ... BUT if I have enough time and feel like experimenting somethin' stupid... I might play with my mig welder and fabricate a little here and there just to see how it turns out... I sorta figured that this turbo being capable of boost levels around 25-30psi on big diesels... then my conclusion was that 10 psi (or a little less) would be feasible in larger displacement gasssers like the 302... :( I gotta re-learn how to plug my intake flow figures onto those maps... read about it a few years ago... I need to brush up on these things already...

Yes... got torque down low with the 5.0L... but c'mon... who are we kiddin'?... this stuff is addictive, the more you get, the more you want, don't you? ... and 400lbft doesn't sound soooo bad... sends chills down my spine already... more torquey = more fun to drive... yes!

CivicTsi 05-18-2010 02:29 PM


Originally Posted by Skylar (Post 1300446)
Yeah, approximating wastegate actuator area on left to get approximate shaft force. Guessing how long the VGT arm on the holset is on the right. It's outside, tucked away, in a box and can't be bothered dragging it out to measure it so I just approximated it as 2cm and 3cm.

Servo heat tolerance: no idea. Their website don't say anything about temps. I found a servo that's cheaper with higher torque with the option of upgrading to robotics servos with even more torque at higher voltage. I'm going to try test out the algorithm and heat tolerance by running a servo in place of the wastegate actuator, mounted off the compressor housing in a similar to what I would like to do with the holset. That way I can sorta get an idea of whether it's going to work (or melt away or not be quick enough) before I install the 351VE.

How big an engine are you planning on running the turbo on? I've got a 1.8 and a 38mm wastegate, you think it'll be enough?

I've got a 2.3L. 38mm sounds like plenty to me. I really wonder if an external wastegate is necessary. I'm going to run some tests with the vanes wide open just to be sure. I know many people insist on using one, but there's no replacement for personal experience.

Turboedmav 05-22-2010 02:18 AM

Hi there CivicTsi!

I'm really itching to start building my own controller... can you help? ... what should I get besides the Picaxe?... Can you provide us/me with the parts list and some guidelines to at least start to get everything ready?

Thanks man!

Skylar 05-22-2010 09:37 AM

Hey, I had a good look at your code. The second line after close:, and open: headers (readadc 2,b1 'Take MAP sensor reading and save to memory block b1) can be deleted? Open and Close subroutines don't require a MAP reading as it just checks if current position is close enough to desired to use fineopen/close then sets servopos 2 to 150+-18 if it isn't. The same line which appears just before the main: header can also be removed as you check MAP two lines later.

Do you plan to set up trending with B5 and B6? They aren't used elsewhere in the program.

Do you intend to make target boost adjustable later on down the track?

With the ESC, how are you running 12v+ into it when it's rated to 3S only? What happens when the VGT rack is moved into max position in the beginning when recording values for max open and shut values? Does the ESC's current draw spike in trying to fight the endpoint?

Update on my end: I bought a high torque servo(hitec hs-5805mg) off ebay and should be here next week. Started making a compressor housing servo mount for T25.

MR.Poopie 05-23-2010 12:44 AM

Is there any chance of you doing some sort of write up of how you did the MANUAL controller. Im more interested in the "stage 1" controller you made.

Thanks,
Clayton

Turboedmav 05-29-2010 08:41 PM

"Light, more light"

Johann Wolfgang von Goethe

Please?

:)

CivicTsi 05-30-2010 09:04 PM


Originally Posted by Skylar (Post 1300542)
Hey, I had a good look at your code. The second line after close:, and open: headers (readadc 2,b1 'Take MAP sensor reading and save to memory block b1) can be deleted? Open and Close subroutines don't require a MAP reading as it just checks if current position is close enough to desired to use fineopen/close then sets servopos 2 to 150+-18 if it isn't. The same line which appears just before the main: header can also be removed as you check MAP two lines later.

Do you plan to set up trending with B5 and B6? They aren't used elsewhere in the program.

Do you intend to make target boost adjustable later on down the track?

With the ESC, how are you running 12v+ into it when it's rated to 3S only? What happens when the VGT rack is moved into max position in the beginning when recording values for max open and shut values? Does the ESC's current draw spike in trying to fight the endpoint?

Update on my end: I bought a high torque servo(hitec hs-5805mg) off ebay and should be here next week. Started making a compressor housing servo mount for T25.

The program I posted was very raw and still had a few debugging lines remaining from testing. Your right, there are many lines that are unnecessary. The only reason I had B5 and B6 was to get a range while debugging. I'm not planning on using them later. Programming to target boost won't come until I have this thing in the car and can do trial runs. As for the ESC, I'm actually running about 14.0v into it. I didn't realize what 3S meant until long after I bought and used it. It has days of running time on it at this voltage and seems to be working fine. I believe current draw remains within reasonable limits during the brief moments it hits the endpoints. I haven't worried about it enough to measure it. I'm really curious how your servo will hold up to the heat. How and where are you going to mount it?

CivicTsi 05-30-2010 10:51 PM

3 Attachment(s)
Ok, here it is. A parts list with instructions:

ESC HobbyWing EZRUN-25A-L Brushless ESC for 1/18 Car (Version 2)

Programming Card LED Program Card For HobbyWing RC Car Brushless ESC

Picaxe starter kit SparkFun Electronics - PICAXE-18X Starter Pack

Picaxe programming cable SparkFun Electronics - PICAXE USB Programming Cable
(Serial cable is cheaper if your computer supports it)

MAP sensor (Any)

100k ohm linear taper potentiometer 100K-Ohm Linear-Taper Potentiometer - RadioShack.com

Remove board by desoldering circled areas:
Attachment 5784
Once the board is loose, solder the connections like so:
Attachment 5785

Drill a hole and mount the pot:
Attachment 5786

Trim the shafts on the pot and gearbox with a Dremel so that they interlock.

Position the pot so that it will freely turn throughout the actuator's full range of motion.

Hook up the three motor wires from the ESC to the actuator. (No specific order. If it goes backwards from what you want, just switch two of them)

Hook up the three wires from the pot to the three pins under input 0 on the left of the Picaxe board. Make sure the center from the pot stays at the center of the three connections on the picaxe board. (closest to the right of the number 0 printed on the board)

Hook the MAP sensor signal wire to input 2 on the left side of the board. (closest to the right of the number 2 printed on the board)

Give 12v to the ESC.Set the ESC to crawler mode. Turn reverse on at 100% speed. See manual at http://site.hobbypartz.com/hobbywing/HW-13-V2.pdf
Hook output 2 (right side of the Picaxe board, above the minus sign) to the white servo wire on the ESC. Make a connection from the black servo wire on the ESC to the Picaxe ground. Leave the red servo wire unhooked. You must make sure to have a jumper wire going directly from the picaxe chip output 2, to the output on the board because I found that the driver IC doesn't let the servo signal through properly.

Hook the Picaxe and MAP sensor up to a 5v supply and ground. You will need to calibrate the ESC throttle range. See the manual above. When doing so, use the Picaxe programming editor to have the Picaxe generate a servo signal like so:

setfreq m8 'sets frequency to 8Mhz
servo 2,150 'Initiates servo control in neutral position
main:
servopos 2,150 'Servo to neutral position signal
pause 1000
goto main

When I set up my ESC, I made 150 as neutral, 100 as full reverse, and 200 as full forward.

You will have to modify most of these values to fit your needs. Just for reference:
b0=Pot position
b1=Map sensor
b2=The position desired
b3= The position desired plus a little more, giving it an acceptable range to be in.
b4=The difference between b0 and b2

Here is the program, notice I added the Debug command near the beginning to help get the right values. Just erase it once your done.

setfreq m8
servo 2,150
main:
readadc 0,b0
readadc 2,b1
debug
if b1 > 71 then gosub pos1
if b1 > 74 then gosub pos2
if b1 > 77 then gosub pos3
if b1 > 80 then gosub pos4
if b1 > 83 then gosub pos5
if b1 > 86 then gosub pos6
if b1 > 89 then gosub pos7
if b1 > 92 then gosub pos8
if b1 > 95 then gosub pos9
if b1 > 98 then gosub pos10
if b1 > 101 then gosub pos11
if b1 > 104 then gosub pos12
if b1 > 107 then gosub pos13
if b1 > 110 then gosub pos14
if b1 > 113 then gosub pos15
if b1 > 116 then gosub pos16
if b1 > 119 then gosub pos17
if b1 > 122 then gosub pos18
if b1 > 125 then gosub pos19
if b1 > 128 then gosub pos20
if b1 > 130 then gosub pos21
if b0 < b2 then goto open
if b0 > b3 then goto close
servopos 2,150
pause 50
readadc 0,b0
readadc 2,b1
let b4 = b0 - b2 + 100
goto main
open:
readadc 0,b0
let b4 = b0 - b2 + 100
if b4 > 60 then goto fineopen
servopos 2,168
goto main
close:
readadc 0,b0
let b4 = b0 - b2 + 100
if b4 < 140 then goto fineclose
servopos 2,132
goto main
fineopen:
servopos 2,160
goto main
fineclose:
servopos 2,140
goto main
pos1:
let b2 = 40
let b3 = b2 + 4
return
pos2:
let b2 = 50
let b3 = b2 + 4
return
pos3:
let b2 = 60
let b3 = b2 + 4
return
pos4:
let b2 = 70
let b3 = b2 + 4
return
pos5:
let b2 = 80
let b3 = b2 + 4
return
pos6:
let b2 = 90
let b3 = b2 + 4
return
pos7:
let b2 = 100
let b3 = b2 + 4
return
pos8:
let b2 = 110
let b3 = b2 + 4
return
pos9:
let b2 = 120
let b3 = b2 + 4
return
pos10:
let b2 = 130
let b3 = b2 + 4
return
pos11:
let b2 = 140
let b3 = b2 + 4
return
pos12:
let b2 = 150
let b3 = b2 + 4
return
pos13:
let b2 = 160
let b3 = b2 + 4
pos14:
let b2 = 170
let b3 = b2 + 4
return
pos15:
let b2 = 180
let b3 = b2 + 4
return
pos16:
let b2 = 190
let b3 = b2 + 4
return
pos17:
let b2 = 200
let b3 = b2 + 4
return
pos18:
let b2 = 210
let b3 = b2 + 4
return
pos19:
let b2 = 220
let b3 = b2 + 4
return
pos20:
let b2 = 230
let b3 = b2 + 4
return
pos21:
let b2 = 240
let b3 = b2 + 4
return

defibf 05-31-2010 09:44 AM

This is just fantastic work :)
I am soon to be fitting a 351ve to a 3.0 Subaru engine.
I have the turbo but have not as yet got round to even thinking about building a controller (got to make the manifold first :) )
Just one thought I was considering a tps input so that vane position was in "make boost mode" during acceleration and full open during cruise
Regards

Skylar 06-01-2010 06:25 AM

1 Attachment(s)
I began by circling the holes in red but ended up drawing a possible mount. Gonna need some heavy duty heat shielding and header wrap. Initially I'll mount it up to a T25 and run it in place of a pneumatic actuator to see if it can do the work or not, or whether it'll stand up to the heat.

I plan on putting TPS input in mine so I can drive around without making boost then after ~50% or so TPS, the VGT rack will close and start making boost.:) but that's for after initial implementation.

Skylar 06-01-2010 10:36 AM

After getting the turbo out and looking at the open and closed arm positions, the servo will probably end up being mounted off the other actuator holes with the servo floating somewhere over the comp. housing.

Also noticed the rack's pretty damn hard to move with the exhaust housing on. Any suggestions on how to clean the build up off the "fins" or receiver ring? Kero/metholated spirits/acetone + toothbrush?

defibf 06-01-2010 10:52 AM

I am pretty clueless when it comes to pld's, last time I touched a programmable logic device was at college 20 years ago, this thread has inspired me to get on with it.
Having read all of this I am going to go ahead and get the bits I need to build one of these controllers thanks Civic TSi :)

I think that some sort of tps control would be good, it will certainly help fuel economy if nothing ese :)
My plan is to measure rate of change of throttle position to trigger "boost mode" my feeling is that this may make the response more linear
I think that It’s also worth looking at egt's I will want a set point above which the "vanes" open up to reduce back pressure. This is not so as to avoid setting the unit up properly, just as an override.
I was thinking about putting the unit through a cycle of full closed to full open each time the ignition is turned on to help keep it clean
Another thought is whether or not the pot will remain accurate enough under changes in temperature, I know that water cooling is present, I just worry that the temperature will make the pot rather inaccurate, Would it not be possible to use the hall sensors in the existing board, I have not yet even had the top off of my turbo I just checked end float and put it in a box

defibf 06-01-2010 10:55 AM


Originally Posted by Skylar (Post 1300894)
After getting the turbo out and looking at the open and closed arm positions, the servo will probably end up being mounted off the other actuator holes with the servo floating somewhere over the comp. housing.

Also noticed the rack's pretty damn hard to move with the exhaust housing on. Any suggestions on how to clean the build up off the "fins" or receiver ring? Kero/metholated spirits/acetone + toothbrush?


Carb cleaner or brake cleaner should get th job done

CivicTsi 06-01-2010 12:10 PM


Originally Posted by defibf (Post 1300895)
Would it not be possible to use the hall sensors in the existing board, I have not yet even had the top off of my turbo I just checked end float and put it in a box

Maybe with a different microcontroller. The Picaxe 18x is limited to 8Mhz. I think that is too slow to accurately read the hall effect sensors. Maybe I'm wrong though. The pot will change readings slightly according to temperature. The trick is having the program use the readings when the engine (and pot) is at normal operating temperature.

Skylar 06-01-2010 12:14 PM


Originally Posted by defibf (Post 1300895)
I am pretty clueless when it comes to pld's, last time I touched a programmable logic device was at college 20 years ago, this thread has inspired me to get on with it.
Having read all of this I am going to go ahead and get the bits I need to build one of these controllers thanks Civic TSi :)

I think that some sort of tps control would be good, it will certainly help fuel economy if nothing ese :)
My plan is to measure rate of change of throttle position to trigger "boost mode" my feeling is that this may make the response more linear
I think that It’s also worth looking at egt's I will want a set point above which the "vanes" open up to reduce back pressure. This is not so as to avoid setting the unit up properly, just as an override.
I was thinking about putting the unit through a cycle of full closed to full open each time the ignition is turned on to help keep it clean
Another thought is whether or not the pot will remain accurate enough under changes in temperature, I know that water cooling is present, I just worry that the temperature will make the pot rather inaccurate, Would it not be possible to use the hall sensors in the existing board, I have not yet even had the top off of my turbo I just checked end float and put it in a box

Programming the if change of throttle > set, goto "boost mode" won't be hard but on what condition do you get out of it? If you're off throttle for more than a sec or something? If you do do that it will be hard to implement unless you're good with interrupts running in the background. Maybe just jump out of boost mode when MAP is below atm and let it back in when you throttle on again? Now that I think about it, a gearknob mounted switch seems easiest so that you don't miss boost mode if you're easing onto the throttle at a tight corner or have the boost violently kick in at a certain pedal angle.

The closed to open to closed sweep is in program and was in CivicTsi's program, I see you've taken it out of your code. ???

The pot varying with heat is a good point. As much as I would like to use the hall sensors, they only provide relative position, not absolute position like the pot. If you know what position the rack(most likely at an endpoint) is at and how many rotations of the motor it takes to get to the other end you could use them. That's more programming and more testing and I'm lazy, you guys can have a go at it though. ;D To use them you may need components to boost the output of the sensors to TTL levels. Also gotta figure out which direction the motor's spinning. Maybe make it add one to a position variable every time a signal is seen at a hall effect sensor if spinning towards open and subtract if moving to close rather than polling each of the three sensors.

I have neither of the sprays but I'll go get some and see if the rack gets easier to move.

defibf 06-01-2010 12:38 PM


Originally Posted by CivicTsi (Post 1300902)
Maybe with a different microcontroller. The Picaxe 18x is limited to 8Mhz. I think that is too slow to accurately read the hall effect sensors. Maybe I'm wrong though. The pot will change readings slightly according to temperature. The trick is having the program use the readings when the engine (and pot) is at normal operating temperature.

Thanks for the reply I am on a pretty steep learning curve with these controllers
I was thinking of a picaxe 28x2 in the 28 starter kit not much more expensive more inputs and outputs as well.
Point taken about normal operating temperature.

defibf 06-01-2010 01:39 PM


Originally Posted by Skylar (Post 1300904)
Programming the if change of throttle > set, goto "boost mode" won't be hard but on what condition do you get out of it? If you're off throttle for more than a sec or something? If you do do that it will be hard to implement unless you're good with interrupts running in the background. Maybe just jump out of boost mode when MAP is below atm and let it back in when you throttle on again? Now that I think about it, a gearknob mounted switch seems easiest so that you don't miss boost mode if you're easing onto the throttle at a tight corner or have the boost violently kick in at a certain pedal angle.

The closed to open to closed sweep is in program and was in CivicTsi's program, I see you've taken it out of your code. ???

The pot varying with heat is a good point. As much as I would like to use the hall sensors, they only provide relative position, not absolute position like the pot. If you know what position the rack(most likely at an endpoint) is at and how many rotations of the motor it takes to get to the other end you could use them. That's more programming and more testing and I'm lazy, you guys can have a go at it though. ;D To use them you may need components to boost the output of the sensors to TTL levels. Also gotta figure out which direction the motor's spinning. Maybe make it add one to a position variable every time a signal is seen at a hall effect sensor if spinning towards open and subtract if moving to close rather than polling each of the three sensors.

I have neither of the sprays but I'll go get some and see if the rack gets easier to move.

I was thinking that during deceleration the vane should hold its position for a predetermined period, so that on/off throttle transitions did not cause undue loss of exhaust gas inertia. I am not sure how I would implement this (speak to someone who knows I guess :)), for "lift offs" of more than a second or so, would it be possible to hold a memory (short term) of the last vane position, then re apply this position on reapplication of the throttle (just a thought)
I have not looked at the hall sensors yet, I am thinking that it will take me a while to get it to work (if I can get it to work ;D).
Over here (England) it is possible to get these cleaners in 5Ltr cans which is way more economic than spray cans, I would strip the turbo down and place the offending parts in a container of cleaner overnight.
Best of luck :)

CivicTsi 06-01-2010 11:53 PM

Well, it's official. After burning out two Picaxes, I've given up on trying to get the stock actuator to respond to PWM. I've tried countless frequencies and duty cycles with no results. I'm certain they only respond to CAN bus now. It seems its time to implement my controller. Now it's time for some manifold fabrication. I have a source for the flanges. Does anybody have an idea where to get a good, inexpensive merge collector and mandrel bent pipe?

Skylar 06-02-2010 01:14 AM

Merge Collectors:
Vibrant Performance ::.
Cast Turbo Manifold Merge Collector Z10 Motorsports gotta redo flange

Bends:
Burns Stainless LLC - Tubing < 2" ~ 304 SS Tubing ~ 90 Degree Bends 16/17/18/20ga 304
Vibrant Performance ::. sch.10, 304
Ace Stainless 304/316/mild in sch.10 & 40
McMaster-Carr has butt weld fittings as well but I think vibrant was cheaper.

How did you "burn out" the chips? I fried my servo because the guy at the shop gave me some mosfet instead of the BJT causing the power rail to be at 12v instead of the 5v it was supposed to be at. :(

CivicTsi 06-02-2010 02:13 AM


Originally Posted by Skylar (Post 1300920)
Merge Collectors:
Vibrant Performance ::.
Cast Turbo Manifold Merge Collector Z10 Motorsports gotta redo flange

Bends:
Burns Stainless LLC - Tubing < 2" ~ 304 SS Tubing ~ 90 Degree Bends 16/17/18/20ga 304
Vibrant Performance ::. sch.10, 304
Ace Stainless 304/316/mild in sch.10 & 40
McMaster-Carr has butt weld fittings as well but I think vibrant was cheaper.

How did you "burn out" the chips? I fried my servo because the guy at the shop gave me some mosfet instead of the BJT causing the power rail to be at 12v instead of the 5v it was supposed to be at. :(

Thanks for the info. A direct short from the Picaxe PWM pin to power seems to do the trick. I have a few more, no worries. You mean to tell me that big expensive servo you got is ruined now? Thats horrible! Are you buying another?

Skylar 06-02-2010 02:47 AM

I guess I have to? I dunno. I pulled the PIC out but forgot that the servo(yeah, the big expensive one) was plugged in. I wish I fried $5 chip instead of the $60 servo and wouldn't have happened if I wasn't so lazy and pulled a cheapy servo out of an RC car to test with. Big patch of black on the servo's PCB so I'm guessing it's toast. I'll try it again once I sort out my power supply. Still makes servo noises though.

I'll probably get more encouraged once I sell some cars and I have money again. but I'm starting to like your method too, a lot.

I'm leaning towards doing this instead of making a manifold. Turbo's too big to fit between head and strut tower on the two cars I am thinking of using it on. Works out a lot cheaper than making a manifold too. :) Do you guys think it'll make much of a difference between proper manifold and a manifold with bridge pipe on this vgturbo?


All times are GMT -5. The time now is 05:20 AM.


© 2024 MH Sub I, LLC dba Internet Brands