Action disabled: backlink

You Don't Need MS3

And other EFI misunderstandings.

Why You Don't Need an MS3 (or even MS2)

I see a lot of people discover Megasquirt and immediately jump to “I'm gonna get an MS3” - and the reason is always that MS3 must be the best because it's the newest and has the most features.

So, there's quite a bit wrong with this, especially in the world of Land Rovers where the most popular target is the trusty old hector that is the Rover V8 - a 1940's design of pushrod V8 that tops out at about 6000rpm and does its best work at half of that, especially in a 2-ton brick-shaped 4WD.

The MS3 (and MS2) have tonnes of features and capabilities that you just don't need - not only that, but the fact they're in there means they're harder/more complicated to set up and troubleshoot because there's so many more ways you can screw it up.

But more must be better, right?

The MS2 and MS3 add some numbers on the spec sheet that people assume must be better, but in reality for most people they make bugger all difference.

The Short Version:

MS1 does have a few minor limitations, but it will get you to within 99% of perfect.

MS2 gets you 99.9% of the way to perfect but is more complex and has taken a long time to get the bugs out.

MS3 throws the kitchen sink at the problem and gets you to 99.99%, but with a huge cost in terms of complexity.

It's diminishing returns with a trade-off in being much harder to set up and troubleshoot.

The Only True Plus

And why even that isn't a true plus

There is one single thing that actually leads to MS2 and MS3 running ever so slightly better around idle and that is improved time resolution - the processors run faster so have finer control over injector opening times. At higher loads and RPMs it makes zero difference, but at idle you need short injector openings.

Looking at one of my own datalogs, at idle I'm sitting around 2.0ms injector opening time which is ~5% duty cycle, so 95% of the time the injector is closed.

MS1 standard code has 0.1ms resolution, so when we're bobbling around at idle with our 2ms pulsewidth, the smallest possible change the ECU can make to the amount of fuel going in is 0.1ms or ±5%, which is not a super-fine control. It's still better than a carb is going to manage so I try not to lose any sleep over it.

That's it folks - that is about the sole noticeable improvement you'll get from an MS2 or MS3 without an absolute ton of fine-tuning.

And why even that isn't a true plus: There is (or was) a high-res build of the MS1-Extra code that threw injector PWM current limiting in the bin and made way for ~10x finer timer resolution as a result, but no-one seemed to notice it or use it because MS1 is more than good enough, and anyone being that picky had, by then, already bought an MS2 or MS3 because that must be better, mustn't it?


Further reading - AKA the long version

How We Got Here (MS3)

In the beginning, there was MS1 (well, before that there was EFI332 but that's another story), a very simple DIY EFI controller that was more like a carburettor simulator - it was very simple, worked well, and attracted a group of folks to it who loved playing with cars.

Unfortunately, as more people joined in, they all wanted to add stuff - support for different ignition systems, different engine configurations, extra features, etc. This became the MS-Extra project and frankly it's amazing what they managed to cram into a relatively low-powered processor.

However, every time you add a new option, you complicate things - and with limited resources you start to have to share inputs and outputs, so you can have a shift light but you can't have fan control at the same time.. and then the options screens get more and more complex as new versions of board called different pins different names…

And this is still MS1!

As it stands, after some time the MS-Extra code was stable and had most of the features you could ever really need in a road car (and a fair few on top).

The MS2 came along - a processor with more power, more space, more pins, hurrah! We don't have to cram stuff in, we can have everything we could ever dream of! But the problem with that is there's so much more to go wrong and for people to mess up the configuration for. More code means more room for bugs, and there's been some bad ones. Up until fairly recently the MS2 code hasn't been what I'd consider stable enough to want to bother switching to, given how little you gain (more on that later).

As the Megasquirt project gathered tens of thousands of users, it also gathered tens of thousands of people wanting changes - often without really thinking about how necessary they are and what the drawbacks are of adding yet more complexity.

And then MS3 came along - which basically bolts a supercomputer into the box. Sure, it adds some “nice to have” features but it also adds an absolute ton of unnecessary complexity.

Things you don't really need - the long version:

First off - larger tables.

The original MS1 had a single 8×8 fuel map, that's 8 cells wide and 8 cells high, which feels somewhat restrictive, and other aftermarket ECU's offer more, sometimes a lot more.

However, even in MS1 that was not the true picture - the ECU looks at where it is in the table, looks at the surrounding cells and interpolates (smooths) the table out based on weighting each adjacent cell, giving a pretty damn smooth fuel table in reality.

The MS-Extra code upped the tables to 12×12 cells, added the same again for ignition timing, and then doubled it with switchable tables for both.

MS2 similarly has 12×12 tables, and MS3 upped it to 16×16.

In reality, if you spend any time tuning your vehicle, doing data-logs etc. you'll quickly see in the tuning software just how little time your engine spends in most of the table - there's a couple of patches on the table that get ~90% of the use and the rest are almost never touched.

Now, if you're tuning some insanely tweaky race engine you might want more cells in the map, but even then they'll only be important at a few critical “spots” and the rest of the map will get interpolated based on the surrounding cells. No-one on the damn planet is tuning every individual cell of a 256×256 fuel map.

Now, modern cars do indeed have vastly more complex ECU's, but to take advantage of those you'd need thousands of hours of dyno time on your engine to get any benefit whatsoever - and most of what they're tuning for is stuff you will never actually see or notice. Getting the car to start “just right” in an Alaskan winter and an Australian summer while remaining within the emissions regulations? Do you really care enough to even try to get near that? Without a dyno inside a vehicle-sized fridge you don't get many shots at it, even if you try and tune cold-start enrichment every morning of the week.

Those complex OEM ECU's add corrections on top of corrections - based on all sorts of factors requiring complicated systems. Are we towing a trailer? Are we using a different fuel map for each gear to protect the gearbox? Are we experiencing spirited driving? Are we trying to save the engine from a warranty claim because the owner hasn't checked the coolant in 10,000 miles? All this stuff is great if you're the one liable for warranty claims and you're trying to churn out a million vehicles a year that all run like clockwork under every conceivable condition and under all manner of abuse, but no matter how much we enjoy a good tinker I don't think many of us want to spend weeks of our lives fine-tuning the correction table for every gear in the box.

Per-cylinder trims

This is an example of a feature that sounds great, but in reality is such a faff to get tuned in, and to almost zero benefit on most engines, that you'll never bother with it. In order to trim individual cylinders you need to monitor individual cylinders, and that alone isn't easy or cheap.

Knock sensing

This was a big push early on in the MS-Extra project but the reality of knock sensing is that it's a microphone that listens to the cacophony of noise going on inside the engine and runs it through a serious pile of maths that's been tuned to that specific engine to filter out what's a knock and what's the noise of the timing chain adjuster. Without some serious R&D investment (or a pre-tuned knock detector circuit suited to that engine) you're going to spend a long time farting around with it to little benefit.

megasquirt/ydni.txt · Last modified: 2020/06/29 00:00 by jin
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0