No announcement yet.

VGT Turbo M20 Sleeper ('87 325 Sedan)

  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by varg View Post
    That multifunction display is really neat. I love that, just have very little coding skill so I wouldn't know how to implement it.

    What type of controller are you using with the VNT? Since the system is continuously variable, is it being tuned to operate in open loop or will it be closed loop? Since the goal is to maximize mass flow during times of high power demand, measurable simply in a dyno environment as increased torque over the duration of a full throttle pull from low engine rpm vs a baseline pull with the nozzle fully open, but difficult to measure in practice during street tuning or with limited dyno time, how are you gauging turbine efficiency to determine whether the nozzle needs to be opened or closed further at any point? Correct me if I'm wrong, but are its goals not maximizing rate of increase of mass during boost onset and mass flow for a given engine speed at lower engine speeds, not maximizing boost pressure itself? This being a device which has the goal of optimizing turbocharger performance, you could conceivably see an increase in boost pressure without in associated increase in torque at a given engine speed by restricting the exhaust flow too much while chasing a boost number, reducing flow through the engine and increasing work done on the exhaust gasses during the exhaust stroke, akin to just having an undersized turbine housing.
    Thanks for the kind words!

    The controller is electronic, with a built-in closed loop control - but the closed loop does the job of matching commanded vane position with actual vane position. It doesn't determine what the appropriate commanded position should be, so I had to design the system to figure it out. The vane position gets sent to the controller over CAN by sending a 10-bit value (in practice, the fully open position is a command value of 50, and fully closed is a command of 960).

    I start with the Megasquirt boost target map to determine a "demand" for more boost based on boost error, or target boost minus MAP - in general, the bigger the error, the more I should close the vanes. As boost builds and error decreases, the vanes open, until they're fully open by the time I hit the boost target from the Megasquirt map. So it's a mostly closed loop, but ultimately boost is controlled by the wastegate unless I'm well below the cam's operating range (below 3000rpm). Even with vanes fully open, at higher engine speeds it'll build at least 15psi with a closed wastegate with my engine (haven't tried to go higher, and even that "test" was an accident! I forgot to reconnect my wastegate boost signal at one point).

    My goal with the VGT is twofold:
    • Top priority, take advantage of my 280/280/11mm turbo cam to make as much top-end power as I can at a given boost level.
      • Having the VGT fully open once turbo is spooled to wastegate pressure will minimize exhaust manifold pressure and increase flow. No point in having the vanes closed any amount if the wastegate is controlling boost.
      • Tubine housing is something like 26cm^2 when vanes are fully open; for a given boost level, a bigger turbine housing (A/R, nozzle, etc) should make more power, eventually plateauing due to other factors.
    • Second, offset the relatively large wheels and housings by using the VGT function to get the turbo to spool more rapidly.
      • There's definitely a balance in the tuning here: get too aggressive with closing the vanes, and the nozzle gets small enough to choke the flow through the head - leading to less torque for sure, but because you have less flow, slower spool too, because less power into the turbine! Minimum nozzle size is something like 2.5cm^2, so this is a definite possibility!
      • So the VGT, if it's working right, just gets the turbo up to speed sooner, it doesn't affect ultimate boost level unless it's way too timid at low RPM (turbo won't spool at all).
      • The VGT can choke the engine enough to significantly decrease torque, so to this effect, I've built-in a map on my microcontroller that limits the minimum turbine size based on RPM. This should also help avoid WOT surge at low RPM due to big turbo (stock on 6.7L Cummins 24-valve) on small engine:
    Click image for larger version  Name:	turbine_maps.png Views:	0 Size:	13.7 KB ID:	9925342

    So an example of this can be seen especially in the second log: I went from low throttle to WOT at 4000rpm, and the target boost (165kPa) jumped significantly higher than my MAP value, so I closed the nozzle "fully", or to about 7.6cm^2 for this RPM.

    My current control algorithm is purely proportional to boost error (target minus MAP), but the scaling is set so that I get the minimum allowable nozzle size until I'm some percentage of the way between baro (80kPa where I live) and my boost target; this threshold is currently set to 65%. So the nozzle stays at 7.6cm^2 until I reach 65% of gap between baro and boost target, in this case, until MAP gets to 135kPa. Then between 135kPa to 165kPa, I linearly open the nozzle so it's fully open when I reach boost target. Right now my wastegate is giving me between 167-170kPa pretty consistently. Tuning the minimum allowable nozzle size, the fully-closed transition to proportional control (i.e. the current 65% value), and the boost target map *should* provide enough tuneability to hit that balance between boost pressure and mass flow.

    Originally posted by varg View Post
    Are you monitoring exhaust manifold pressure or EGT while tuning the VNT controller?
    I don't have an exhaust pressure gauge or EGT for monitoring turbine efficiency. Eventually I want to add them, but I'm not to the point of needing them, yet. First I need to figure out how to keep the wastegate closed while I spool!

    Substituting for those sensors, I can see an immediate flow impact by watching AFR. I'm running open-loop fueling, with a pretty good fuel map for wide-open vanes at the moment: so if I close the nozzle enough to choke the flow significantly, I see richer running. Also, the butt dyno doesn't lie if I'm way too aggressive - a slight throttle lift will drop the boost target, causing the vanes to open, but MAP hardly changes and I can instantly feel more torque! Currently this is the case around 2000rpm.

    Here are a couple datalogs to compare. I think my minimum nozzle size is a little too aggressive when I go WOT at 3000rpm, but I also start opening the vanes too soon as boost builds (MAP is below the target for far too long). I should probably increase the minimum nozzle size there, but let it stay at that minimum size for longer. You can see I got quite a bit richer than target with the vanes closed, but once the vanes started opening, I leaned out immediately even though VE didn't change much.

    Click image for larger version  Name:	wot-at-3100rpm.png Views:	0 Size:	87.8 KB ID:	9925344

    Second datalog I went WOT at 4000rpm, less difference in AFR based on vane position (although I need better AE tuning there, too). I think it's pretty close to ideal at 4000rpm (but my wastegate is getting blown open from the exhaust manifold pressure, slowing the spool significantly).

    Click image for larger version  Name:	wot-at-4000rpm.png Views:	0 Size:	85.6 KB ID:	9925343
    Last edited by mikey.antonakakis; 05-13-2020, 03:07 PM.


      Will have another quick vid soon, this time a few second -> third gear flybys.

      Today I reinstalled my MBC in line with the existing boost signal hose (compressor outlet to WG bottom port). Previously, running the boost hose straight through to WG, I was at ~9.5psi, and blowing the WG open real bad during spool with the vanes closed. After installing MBC, I saw 15psi (at which point I lifted to play it safe). Spool was a whole lot better, not sure if the wastegate stayed completely shut while it spooled, but I at least couldn't hear it opening this time.

      I then turned down the MBC a bit til I had a consistent ~11.5psi/180kPa MAP, and it was enough to cause the WG to get blown open again, not as bad as before. Left it at that setting for the video, then after the video while merging onto the interstate I rolled onto the throttle in second gear and got a bit of wheelspin. It didn't light em up, but I'm on Direzza Star Specs with a 2.93 diff, so that's the first time any wheelspin has happened with these tires in 2nd.

      I have a feeling there's a good amount of power still on the table for my recent boost levels. Fuel table is pretty good, but I think I can get more from ignition. I built my own electric det cans (wired up a knock sensor, built a 6.8kHz bandpass filter and amplifier for it), and I've tuned out any discernable knock, but I know I can't really ask for more than another degree or two at that 170-180kPa level without risking knock. We only get 91 pump gas here in Colorado... I'm running moderate MAT retard too. Happy to share maps if anyone wants to give some feedback.


        Video from a couple days ago:


          Parts ordered for on-board compressed air boost control to ensure the wastegate stays shut during spool-up. I'll be using a VIAIR Ultra-light duty compressor/tank setup, regulator on the tank output, dual boost solenoids. I should have enough IOs and processing power to do the control with my existing microcontroller (which is currently handling CAN, VGT control, econometer functionality, and my touchscreen display). I will have to build an adapter board to step up the power of the PWM outputs, but no biggie there.

          For initial setup, it will be pretty simple: apply the full (regulated) air pressure to the WG during spool-up, for example any time boost duty >0 (or some other small number). Otherwise, close the fill solenoid and vent the WG top port, allowing simple mechanical WG control, with or without a manual boost controller. Later on it would only require a code update to move to close-loop boost control, which would come with the added benefit of directly linking the boost target table to the boost I actually see. Right now, boost is determined by wastegate spring and MBC if I'm using it, and the target table is only used to help control the VGT vanes (which can only act as a boost limiter below about 4000rpm).


            Current ignition tuning below. So far I've run up to 180kPa with 200-210kPa planned eventually. The latest iteration was done on a dead-flat road (hard to find in Colorado, albeit quite windy that day) a few times in both directions, with datalogs used to roughly calculate (and somewhat conservatively calculate) wheel power of 280-300whp, and 270+ from 5500-7000.

            The chart included is three pulls, 4k-7k in 2nd gear, and a little bit in third gear (not to redline). Somewhat annoyingly, turning up the boost didn't result in a lot of extra power - at 155kPa a few weeks ago, I had calculated ~260-270whp. It's not an apples-to-apples comparison, due to cooler ambient temps, and rolling hills previously, but at the moment the power seems a bit inconsistent, maybe due to my MAT retard.

            On the pulls that generated the power curves below, I saw as high as 3.3deg of timing pulled from a peak MAT of 136F. No struggle for grip in 2nd gear (2.93 LSD gets me to 72mph at 7k in 2nd gear, and I have very sticky tires and a very soft suspension). But about 15 minutes of highway cruising later, spun the tires in 2nd gear as I merged onto the highway - probably due to MAT retard?

            My timing should be dead-on to the Megasquirt values.

            Click image for larger version  Name:	powercalc_2020-05-22.png Views:	0 Size:	378.1 KB ID:	9927513

            Click image for larger version  Name:	timing_2020-05-22.PNG Views:	0 Size:	520.2 KB ID:	9927512

            Click image for larger version  Name:	mat_retard_2020-05-22.PNG Views:	0 Size:	48.0 KB ID:	9927514

            Third pull from the power chart above - had the most heat soak, ~12deg actual advance in 2nd gear and ~10.5 in third gear, peak MAT of 136deg and peak MAT retard of 3.3deg:

            Click image for larger version

Name:	2020-05-22_pull3.png
Views:	633
Size:	87.8 KB
ID:	9927519
            Last edited by mikey.antonakakis; 05-22-2020, 04:21 PM.


              Compressor, MAC solenoid, and plumbing assortment finally on hand. I'm going to start with a very simple setup - until the actual boost has reached some small offset from boost target, I'll apply full regulated compressed air pressure to the top of the wastegate; once actual boost is close to target (maybe ~10kPa), I'll then fully vent the top of the wastegate to let the manual boost controller do the final boost control.

              This on/off action shouldn't waste much air - solenoid port #1 is normally closed, so that will be the supply port, and port #2 is fed by #1 when the solenoid is energized, so that will be the wastegate "fill" port. Port #3 is fed by port #2 when not energized, so that will be the "vent" port and will vent to atmosphere. Therefore a failure will result in minimum mechanically-controlled boost with the top chamber of the wastegate vented to atmosphere. And theoretically the only air I'll lose will be whatever is in the wastegate and the solenoid-to-wastegate supply line each time I reach target boost (and whatever flows through during the few millisecond valve switching time). With a 1-gallon compressed air tank at ~100psi, regulated down to maybe 30psi, I don't expect the compressor will be cycling too often.

              I'll be wiring up both solenoids even though I'll only use one to start, and I'm using 1/4" push-connect hose/fittings for the wastegate plumbing so it's pretty easy to reconfigure later. I'll probably dig into the MS3 dome pressure control algorithm and copy it to my touchscreen display/CAN/sensors/econometer/VGT microcontroller. I get the basic idea of how to control the solenoids, but it'd be easier to see an actual implementation. Once I have that working, I can use the boost target table in MS to set the target, use the microcontroller to get the closed loop control, and then I won't have to rebuild the target table to match my mechanical boost control every time I want to change my boost level _ I just have to change the target table (and maybe initial value table, but either way it will involve much less trial and error).
              Last edited by mikey.antonakakis; 05-27-2020, 06:41 AM.


                Compressor installed in the trunk and working, boost solenoid driver circuits built and installed, boost solenoids installed and wired. Just need to add the programming to the microcontroller, and hopefully end up with better spool.
                I also ran a wire for a wastegate dome pressure sensor to add later on, since I have everything else in place to run dome pressure control.

                Hopefully I'll have a chance to test it tonight.


                  Tested it out last night, with very simple control method: pressurize the dome until MAP is within 10kPa of boost target, and then vent it to atmosphere. Subjectively it seemed to help the spool, especially at lower rpm.

                  There was, however, one strange difference: my last test a couple weeks ago with wastegate blowing open, I was running 80k-90k shaft speed at full boost of ~185kPa MAP. Last night was the same ultimate wastegate setting, however I was at higher altitude, so seeing a higher pressure ratio. Despite that, shaft speed DECREASED a bunch, I was running 65k-75k. 15k lower shaft speed despite higher pressure ratio? The overlaid logs are aligned to engine rpm, and I went WOT just slightly later on the lighter lines (from a couple weeks ago).

                  EDIT: Must have been some sort of data corruption, otherwise something else strange happened. Speeds are back to normal again, just went for a short spin.

                  Click image for larger version  Name:	slowerShaft.PNG Views:	0 Size:	17.6 KB ID:	9929664
                  Last edited by mikey.antonakakis; 06-02-2020, 01:21 PM.


                    Maybe you had a boost leak?

                    IG @turbovarg
                    '91 318is, M20 turbo
                    [CoTM: 4-18]
                    '94 525iT slicktop, forged M50B30 + S366SX-E project, 600WHP DD or bust - updated 10-26


                      Originally posted by varg View Post
                      Maybe you had a boost leak?
                      That should have resulted in higher speed for a given pressure ratio (had it happen before, when I accidentally fed manifold pressure to the wrong side of the blowoff valve). I'll be keeping an eye on it, as I didn't change anything other than a little bit of microcontroller code. There's a chance something got thrown off with the data side of it. Oh well, at least it's working now.

                      Oil cooler install started today. Nothing fancy, small cheap unit from Amazon. Just to help a bit in the hot weather. Coolant temps sit around 190F cruising around on warm days, 200F max on long uphill climbs at low speed. Not monitoring oil temp yet, but the 10W-60 I'm using seems to keep pressure better when it gets hot than the 10W-40 or whatever I was using prior.


                        Been dragging my feet a bit this last week. Oil cooler is installed, and after a quick test drive doesn't seem to be leaking, at least not in any obvious manner... I was a little skeptical of the latest AN hose kit I ordered from Amazon, but so far so good. The first kit I got a few months ago seemed to be of better quality, and has had zero leaks, even after getting things really nice and hot on long highway drives on warm days recently. At some point I'll probably go back and replicate things with some name-brand fittings and hose, now that I know exactly what sizes and shapes I need for each fitting.

                        While I have the front bumper and valence off, I have been wondering a bit about trying to make some ducting for the radiator, water-air intercooler heat exchanger, and the oil cooler. Right now there's no edge sealing of any sort for the IC heat exchanger or the oil cooler, and they sit proud of the radiator by about an inch, so I don't suspect there's actually a ton of air going through them. Radiator is at least decently sealed on the perimeter, but no ducting on either end, nor an undertray (car hasn't ever had one since it's been in my possession). I had a NB Miata I was daily driving a year ago, through a very hot summer, and I know sealing and ducting and undertray made an enormous impact on that car's cooling - I was always borderline overheating (even with thermostat relocation and upgrades) until I got the airflow managed. My e30 isn't overheating, but it certainly wouldn't hurt to try getting better airflow through my heat exchangers...

                        It seems like some e30s over the years came with some amount of ducting on the front of the radiator? Something like this?


                          Oil cooler seems quite effective even with less-than-ideal airflow. Hot idle is now ~20psi vs ~12psi previously, and measured in a different location with significant pressure drop compared to before. Now measured at the output of the cooler before going back into the block, instead of at the filter output, so it has an additional length of -8AN hose and the oil cooler.

                          The compressor is very loud, being mounted to the rear deck. The solenoid is switching too frequently with the current algorithm/tuning, but even so it doesn't run too often (maybe every 10-20min when I'm doing a lot of throttle modulation). I may swap to a CO2 bottle at some point, but this works for now.

                          Yesterday was a nice cool day, and I had to make a trip first thing in the morning. Floored it in second gear getting on the interstate and lit up the tires, back end got a little squirrely. I'm using MAT retard, so I think that couple of extra degrees of timing made a pretty significant difference in power. Going to do some more street tuning before going to a dyno, and maybe add water/meth so I can run more aggressive timing, since it seems like most of the time I'm leaving a good amount of power on the table... (premium from the pumps here is only 91 octane).


                            great thread, thanks for posting your map. I was working on mine and added some timing in the 80 kpa region to match timing in the lower zones. I am also at 6000 feet asl in colorado springs and running a m20b31 stroker turbo with stock 885 head and 9.5:1 CR
                            318iS Track Rat :nice:
                            '86 325iX 3.1 Stroker Turbo '86 S38B36 325

                            No one makes this car anymore. The government won't allow them, normal people won't buy them. So it's up to us: the freaks, the weirdos, the informed. To buy them, to appreciate them, and most importantly, to drive them.


                              Great work, a lot of progress here-- this thread almost doesn't do all your efforts justice! Curious to see where this goes.

                              Are you using the MAC 4 port valve PN: 46A-AA1-JDBA-1BA? I was contemplating installing one for better spool on my M30b34 turbo as I believe my low compression (8.0:1) and wastegate spring opening early (6psi) is hurting my power onset. Although I wasn't sure I wanted to use the PID control, I figured it could give some performance benefit (and I don't want a CO2 system).

                              I suppose I could buy the 4 port and try it out both ways. I just need to decide if I think I will let the controller/valve pressure the bottom port or leave it at manifold pressure like a 3 port boost controller.

                              Any thoughts?
                              Last edited by tschultz; 11-09-2020, 11:00 AM.


                                Nice work Mikey! Your posts here have encouraged me to buy a HE351VE for my 325iX. I'll hitting you up via PM for some more details on your setup. I don't want to clog up your build thread. Keep up the good work this is awesome!!