Recent Posts

11
General Discussion / Re: HE351VE on 1987 BMW (gas) - inspired by lilbb!
« Last post by mantonakakis on May 21, 2020, 06:52:20 AM »
I went ahead and ordered an on-board air compressor and another boost control solenoid (already have one on-hand that I used with the old turbo). To start with, I'll do a pretty simple control with hopefully just a single solenoid that applies the full regulated pressure to the top of the WG until I get close to boost target, at which point I'll vent it fully and let the MBC control the boost. Hopefully that'll get it spooling harder!
12
General Discussion / Re: HE351VE on 1987 BMW (gas) - inspired by lilbb!
« Last post by Rx7man on May 20, 2020, 08:57:09 PM »
Nice!
I'm trying to convince my buddy to put an HE351 on his FD Rx7 (My old car)
13
General Discussion / Re: HE351VE on 1987 BMW (gas) - inspired by lilbb!
« Last post by mantonakakis on May 15, 2020, 03:06:09 PM »
nice to see progress
On the wastegate, if you're using a 4way valve you should actually be able to put pressure on it to keep it closed too (your wastegate SHOULD have 2 ports on it, one to open it, one to close it).. all the logic is the same, once the solenoid starts to activate, it'll bleed pressure off the "closing" side while adding pressure to the "opening" side of it.  If you do it this way you can get by with a much weaker spring
Yeah, I've thought about it, I don't think it would eliminate it completely, but it might help.
I did some testing today: last time I posted, I was running a line straight from the compressor outlet to the wastegate bottom port. Today, I plumbed my manual boost controller in line with it (ball/spring type). At first, it was set a little too high (I let off the throttle at 15psi, I was hoping for a little less than that). The wastegate did a much better job of staying shut! I decreased the boost controller setting a little, so I was getting about 11.5psi boost, and the wastegate started opening again.

At this point, I can take the single-solenoid output from the Megasquirt and run the solenoid to the top of the wastegate. A 4-port solenoid, or two 3-ports, might be best though. Just having the MBC in-line gave promising results.

Oh, quick video pointed at the exhaust outlet, from a few nights ago:
14
General Discussion / Re: HE351VE on 1987 BMW (gas) - inspired by lilbb!
« Last post by Rx7man on May 14, 2020, 11:18:09 PM »
nice to see progress
On the wastegate, if you're using a 4way valve you should actually be able to put pressure on it to keep it closed too (your wastegate SHOULD have 2 ports on it, one to open it, one to close it).. all the logic is the same, once the solenoid starts to activate, it'll bleed pressure off the "closing" side while adding pressure to the "opening" side of it.  If you do it this way you can get by with a much weaker spring
15
General Discussion / Re: HE351VE on 1987 BMW (gas) - inspired by lilbb!
« Last post by mantonakakis on May 13, 2020, 09:22:02 AM »
Oops, forgot to check this thread for a few weeks!

I've gone through a few iterations of ideas (before I had the car running) to actual implementations once the car was running. Originally, my general plan was to simply convert the Megasquirt boost duty output to vane position.

Then I added an rpm-based minimum nozzle size to prevent choking the engine and/or surging and/or overspinning the turbo (done on my microcontroller in 1000rpm increments).

Most recently I realized the Megasquirt boost control algorithm isn't entirely suited to this use, and that for my purposes, for the near future at least, purely proportional control would probably work pretty well. I added a complication to pure-P gain, though: I currently read the Megasquirt boost target (based on my boost target table in MS) and barometric pressure over CAN; I then have an offset factor in percent that reflects the point at which I'd like the vanes start opening from their rpm-based fully closed position; with the otherwise purely proportional gain, once I hit my boost target, vanes will be fully open, and if I tune my boost target at WOT to be slightly less than my wastegate setting, this will guarantee fully-open vanes once the turbo is spooled, maximizing power. The Megasquirt algorithm doesn't always result in predictable duty cycles even with I and D gains set to zero: for example, sometimes even if you're 20-30kPa above the boost target, you still end up with a high boost duty (even though with only proportional control, it should be at the minimum duty cycle).

In practice, this doesn't cause boost to drop, at least not at the moderate levels of boost I'm running (don't plan on running more than 210kPa MAP any time soon; here in Colorado, that's ~2.6 pressure ratio).

So as an example, in the attached datalog, you can see my baro is 80kPa and boost target is 165kPa. Currently my threshold percent is set to 65%, i.e. once I'm 65% of the way to my boost target (relative to baro), the vanes start opening; in this case, ~135kPa. Vanes are fully open once I hit the boost target of 165kPa.

With a relatively reasonably-tuned boost target table, the vanes should stay fully open until I actually need more boost. I probably need a little more tuning in the part-throttle areas, but at WOT it is working really well. If I change my wastegate settings, I just adjust the WOT cells on the boost target map and smooth the rest of the map accordingly.

Oh, one thing to point out - I'm running a JGS 40mm wastegate, and the stiffest spring JGS sells is worth about 12.5psi on my setup at sea level, or about 9.5psi up here at 6000 feet. In the attached datalog, the exhaust pressure with the vanes closed to ~7.5cm^2 at 4000rpm is enough to blow the wastegate wide open in the middle of the spool (i.e. raw value sent to the turbo is about 240 er, 770). I have a screamer pipe coming off the wastegate right under the passenger footwell, and I can hear the wastegate very loudly from about 3-6psi above atmospheric; once the vanes start to open it quiets down until I fully spool. Who knows how much it's bleeding off over the course of the entire spool! Hopefully I don't have to go to CO2 control, but I'm already running the stiffest spring and it's getting blown open at barely above atmospheric pressures, so there's not a way to plumb the wastegate with a boost solenoid in any way that will make a significant improvement...

16
v1.0 - v1.1 / Re: My life, My coding
« Last post by Rx7man on April 26, 2020, 11:53:19 AM »
Well, calving season is nearly over.. been buiding lots of turbos and doing mechanical work for people.. lightening some BMW flywheels,  fixing lawnmowers and chainsaws.. yadda yadda

Found another HE351ve that's a little sticky, but I've found they're really easy to clean.. $200 with manifold and actuator.. on the dually I I put a stock turbo back on since with my bad injectors, etc it really badly gummed up the turbo.. had it apart and cleaned it.. all you need is some scotch brite on the vane sliders and reassemble it.. I lube it with some dry graphite.

Also went through my programming... deleted a ton of stuff that I don't think was useful, then added a control logic that's similar to stock Lil'bb code that uses only the turbine speed sensor as a failsafe in case I lose my RPM or TPS signals... I'll have to see how it works..
17
General Discussion / Re: HE351VE on 1987 BMW (gas) - inspired by lilbb!
« Last post by hakcenter on April 21, 2020, 06:07:17 PM »
Where'd my post go lol ?

Anyways yeah that's pretty cool, what are you doing to control the turbo ? Is it just the squirt box via canbus to the turbo or are you using the lbb as an in between ??
18
General Discussion / Re: HE351VE on 1987 BMW (gas) - inspired by lilbb!
« Last post by Rx7man on April 19, 2020, 06:13:29 PM »
Nice!  keep us posted!
19
General Discussion / HE351VE on 1987 BMW (gas) - inspired by lilbb!
« Last post by mantonakakis on April 13, 2020, 11:41:40 AM »
Hey, just wanted to post my thanks for all the info and open-source nature of Lil' Blackbox! It was a huge help in getting the turbo working on a 2.7 liter 2-valve 80's BMW gasoline engine (pretty much stock long block except for a 280/280 turbo cam). I'm not running speed control at the moment, but so far everything is working really well. I am, however, monitoring speed to help with tuning. The main reason for shoehorning a HE351VE into the car was to support high power without having to run a ton of boost, and with the VGT, being able to get reasonable spool/response (and better cruising economy and maybe decreased heat).

Setup is a Megasquirt 2 running the latest Extra code. Using the Megasquirt's boost control as the first stage in controlling the turbo vanes. Wastegate is using a simple manual boost controller. Set the target boost table to reasonable values, read the Megasquirt's boost solenoid duty cycle over CAN, modify the value on a microcontroller to prevent overspinning/surging, and send the command onto the turbo itself. I also send turbo position and speed back to the Megasquirt for datalogging. WOT boost target is set a little lower than wastegate pressure to get easy/consistent fully open vanes once the turbo is near target boost, to provide maximum power.

Here's a quick sample log from a second and third gear pull. Low boost for now as I work on the ignition map. I'm estimating ~270whp at the moment based on acceleration rate - not bad for 155kPa absolute pressure on an engine that made ~170bhp stock! "Turbo size" value is an estimate of cm^2 (assuming fully closed = 2.5cm^2, fully open 26cm^2).

20
v2.0 / Re: LBB Common Code
« Last post by hakcenter on April 04, 2020, 08:17:36 AM »
v3.0.2 update

Major Changes:
  • Loop section averaging.
    • Turbo rpm should be a lot more sensitive.
    • Dividing with a float 8.0f might be swapped for a faster bitshift calculation, just really depends.

Code: [Select]
// main loop
  while(turbo_online) {
    t1.update();
    t2.update();
    t3.update();
    // Freq Measure
    if (FreqMeasure.available() && !emulate) {
      emulate = false;
      // average several reading together
      sum += FreqMeasure.read();
      count++;
      if (count > 7) {
        // turbo_rpm = Freq(sum / count) * 60
        turbo_rpm = (FreqMeasure.countToFrequency(sum / 8.0f)) * 60;
        sum = 0;
        count = 0;
      }
    }
    if (emulate) {
      if (turbo_rpm == 0) { turbo_rpm = minimum_turbo_rpm; }
      turbo_rpm++;
      if (turbo_rpm > 140000) { turbo_rpm = minimum_turbo_rpm; }
    }
  }

The loop is a lot smaller now, saved a lot of ram by not using so many longs in an overly complex array.

Minor Changes:
  • Vane changes are set to 50ms now for speeds under 100k.
  • Moved quite a few things around just to tidy up the code.
    • Boost / Deceleration modes are in the calculate modes (100ms).
    • CANBUS reading has moved into Timer3, which will become a watchdog timer.
  • Vane calculation has a little more under it for speeds in excess of 125k.