Originally Posted by MiB
(Post 1300398)
Why is it so hard to use the factory system?
|
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 |
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?
|
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. |
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.. |
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. |
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 |
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... |
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... 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. |
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?
|
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. |
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 |
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'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. |
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. |
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 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. |
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. |
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. 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'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. |
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. :) |
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! |
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? |
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! |
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. |
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 |
"Light, more light"
Johann Wolfgang von Goethe Please? :) |
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. |
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 |
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 |
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. |
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? |
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 |
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 |
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
|
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 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. |
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.
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. |
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 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 :) |
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?
|
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. :( |
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. :( |
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