Subaru Impreza GC8 & RS Forum & Community banner

1 - 20 of 22 Posts

·
Premium Member
98 2.5RS - V2 WRX Swap
Joined
·
1,595 Posts
Discussion Starter #1 (Edited)
Stand-alone ECU's have a lot to offer in the way of performance and flexibility, however they're generally very expensive, ranging anywhere from about $800 up to well over $3000 for a motorsports grade module. Most seem to fall in the $1200-1500 range, which is a lot money and in most cases overkill for most projects. So when I found out Megasquirt was selling a pre-assembled ECU for 300 bucks, I had to try it. In this post I'm going to cover some of the rationale behind such a project, and detail the specifics of how I went about applying a Microsquirt to my EJ20K swap. A lot of this info was not well documented online, so I hope its helpful to someone to bring it all together here.

**Disclaimer**
Every engine and vehicle application is different. This is meant as an Installation guide on one specific Subaru application that may give some insight into other Subaru applications. The calibration settings below are specific to my setup and should be used for reference only.


Older JDM WRX and Sti swaps are considerably cheaper than USDM engines and really offer good performance and value. However, one of their major flaws is that they use older, non-open source tunable ECU’s and a variety of older sensors that are prone to failure, expensive and hard to find. In my opinion, it’s best to go straight to a standalone ECU with pre-2001 JDM swaps. Let's go over some Pro's and Con's of using a standalone for your JDM swap...

Pros
  • Swap sets can be had without an ECU for cheaper than a more complete swap set
  • You’ll already be doing a harness merge, it’s not much if any more work to wire in a standalone
  • You can eliminate the MAF sensor which can be finicky and limit power potential when modding on the stock ECU
  • Sensors that tend to fail on older JDM engines like MAP, TPS and etc. can be replaced with any readily available reasonably priced sensor (GM 3bar MAP for example) and configured to work more easily with a standalone ECU.
  • A properly calibrated, modern standalone ECU can correct issues commonly found on older JDM swaps like hunting idle and issues with U.S. Fuel.
  • Unlocks tuning and modification potential, can make more power more safely when calibrated correctly.
Cons
  • Can take more time to setup and build a base configuration for your specific application
  • Requires tuning immediately
  • Not emissions compliant in many states
  • Standalone ECU’s are expensive, with most “entry level” ECU’s starting at around the $800 mark
This last point is where the Microsquirt comes in and what I wanted to explore for my last project. At $300, can a Microsquirt successfully be used to control a daily driven JDM swap?

Microsquirt is essentially a Megasquirt V2 ECU that’s preassembled into a small case. Before this project I had no experience with MS, so it was also an opportunity for me to learn a new EMS platform. Let’s look at the specific pros and cons of the Microsquirt.


Pros
  • Cheap. It’s $300 without a harness. I spent $350 shipped from DIYAutoTune.com for my Micro and 30” harness.
  • It’s tiny. It is impressively small.
  • It’s simple and could be easy to learn on. I’m a more advanced user, so for me I’m glad to gain the MS experience.
  • 2 Ignition outputs is perfect for a wasted spark Subaru Engine (in my case, EJ20K).
  • Closed loop fuel control with a wideband O2 installed (Essential!)
  • All the IO required for a simple JDM engine and nothing more
Cons
  • 2 Injector drivers means you’ll have to use a batch fire injection strategy. This could potentially give issues at cold starting, idle, slightly higher fuel consumption and potentially worse emissions (if that at all matters for you).
  • Not very much in the way of extra IO which means it’s not very expandable.
  • Only one PWM idle control output which will require a workaround
  • I later learned that both the MS logging program and tuning program (Tuner Studio) required paid upgrades to unlock any useful features. I’ve made due without upgrading, however budget an extra $100 for this.

Microsquirting a V4 Sti EJ20K

Wiring
For my application I got lucky that both my chassis and engine were of a ‘98 Vintage. This meant I could get away without a full merge. This is possible because of the 3 engine harness connectors, 2 are identical (with the exception of 2 pin assignments) and the third can easily be swapped over. So I retained all the the stock chassis side wiring, modified the EJ20K engine harness to match, and spliced in the Microsquirt at the ECU.

For other applications, a harness merge would still be required, however the ECU side connections would still be the performed in a similar fashion. Alternatively, an “overlay” harness could be constructed where the MS is wired directly to the engine using new engine side connectors and chassis side circuits for power, ground, fans and etc. are spliced in.

I've provided a link to a Google Drive folder with all the conversion notes for my application which includes the Microsquirt wiring diagram and imbeded diagrams for a 98 USDM Impreza and a V4 EJ20K. I've also included my Megasquirt .msq file. YOU CAN FIND ALL THE INFORMATION YOU NEED INCLUDING WIRING DIAGRAMS AND MY TUNE HERE

A few notes…
  • Wire the ignition coil exactly as it was from the factory, with the Microsquirt Ign1 output to Cyl.1/2 control and Ign2 output to the Cyl.3/4 control. You’ll keep the factory ignitor.
  • Wire the injectors outputs Bank to Bank, with Injector output 1 to Cyl.1 and 3 and Injector Output 2 to Cyl. 2 and 4
  • Wire the FIDLE circuit to the “open” circuit of the IAC motor. The “closed side” will be wired to ground through a 30 ohm 50watt resistor. This will then by default always drive the valve “closed” and the FIDLE PWM output will be used to drive it open. Verify this on the motor before running the car. Mine backwards and I had to flip the circuits around.
  • ALED and WLED are digital low side outputs used to drive the FAN relays.
  • There is no “self shutoff” or main-relay control available. I wired the key-switch ignition to the “self shutoff control” relay control and then used the main-relay to power the ECU (Pin 1 on Microsquirt).
And here's what my idle resistor looks like and where its mounted. Remember, this is a high current 50w resistor and will get very hot. I had it under the floor by the ECU at first and thought that was not wise, so it should probably live under the hood somewhere.


Mounting
This is how I have my module mounted. It was hard to get a nut on the mounting tab due to the molded in "gussets." However, I was able to get it secure. You'll have to cut or bend the kick plate to accommodate the harness since it comes out on the top of the module.


Additional Sensors and Considerations
  • A wideband O2 sensor/controller is required. I used and would recommend an AEM Wideband gauge, using the 0-5v analog output into the MS.
  • An IAT sensor is required. I used a spare Vi-PEC sensor I had, which is similar to a GM IAT. You’ll want a good, relatively fast response IAT sensor. Whatever you use, install it post intercooler, preferably in the intake plenum. I put mine in the the Cylinder 3 runner, due to space constraints.
  • I also ended up using a GM 3 bar MAP sensor since I couldn’t get the MS to accept the scaling for the stock sensor (more on that below).
  • I used a manual boost controller – I prefer their snappy response and simplicity. You CAN use the Micro to control boost with the stock solenoid, however you’d have to use on of the WLED or ALED outputs. Not a problem, you’d just have to re-work the fan circuits so both fans come on with one control output.
  • Air conditioning can also be retained – I’m working on that now. Essentially, we’ll take the ECU out of the A/C control loop, so it can no longer disable A/C at WOT or if there’s a malfunction – It will only be regulated by the A/C switch and the pressure and temperature switches. The Microsquirt SPARE ADC circuit can be used to receive an “A/C On” signal for Idle up purposes.

Trigger Setup

  • MS Claims they have a built in decoder that works with the Subaru 6/7 trigger pattern found on the older JDM engines. This is where the tinker toy bullshit starts to rear its head with the MS stuff…their Variable Reluctor (VR) sensor rectifier is rudimentary and overly sensitive to noise. On most standalone ECU’s, there’s a calibrateable threshold for VR sensor voltage triggering. With MS, you have to dick around with resistors to control the voltage signal inputs and noise. I struggled for a week trying to get the 6/7 pattern to work. Some combination of inline or shunt resistors may have done the trick, however I just switched to a newer crank sprocket from an EJ257 which has the "36-2-2-2 pattern." The 36-2-2-2 trigger pattern which doesn’t require a Cam position input. Rememeber folks, this is a $300 ECU…
  • The 36-2-2-2 crank sprocket can be used by itself for unsynchronized injection w/wasted spark – if for example Cylinder 1 or Cylinder 3 is at TDC firing, it doesn’t matter which is which – They both have fuel (one is sitting behind a closed intake valve) and they both get spark. The one at TDC firing will light and the other will continue its exhaust stroke unchanged.
  • For the 36-2-2-2 setup, use the following settings.
  • ***WARNING*** You MUST use Spark Output “Going High” for Subaru external ignitor Wasted spark setups – Using Going Low will over-dwell the ignitor and burn it up – Ask me how I Know!
Batch Fire Considerations
Batch fire sucks – I’m under no delusion that it isn’t inferior to a sequential injection strategy. However, for my purpose I think it’s adequate for my goals with the car and where I live, emissions inspection is a non-issue. The rest of the draw-backs I’m ready to live with considering the value of this ECU (Keep telling yourself … “It was $300” and you’ll feel better). Anyways, here’s some technical stuff why Batch-fire sucks…

On each bank, one cylinder’s injection event is phased correctly, meaning it happens a short time before the intake valve opens on it’s induction stroke. However the other cylinder on the bank is 180* off phase and is in its exhaust stroke, so fuel is sprayed behind it’s closed intake valve and isn’t inducted until the exhaust stroke is complete and the intake stroke begins. This causes a number of problems…
  • Fuel sitting behind the valve can come out of suspension and pool on the port walls or back of the intake valve.
  • The above effect is worse when it’s cold and with longer injection events
  • At idle, port to port “communication” can lead to the primary cylinder using some of the secondary cylinders atomized fuel (Not sure how bad Subaru engines are with this – The effect may be very small if of any significance at all).
  • At idle or low load (Small injector pulse widths) can be difficult especially when using more than 2 squirts per cycle (see the following MicroSquirt® Introduction )
  • This means the engine tends to favor rich idle air fuel ratio, around 12.5:1 has worked well for me.
  • Generally, the engine is a little unstable and stumbly at really light load. Further tuning may help, but overall It’s acceptable.
Idle and Start Setup
I have my idle setup as follows. Idle is pretty good but could use some tweaking. Weather has not allowed a full cold start idle and enrichment calibration to be completed. Note! The bottom cell in the Warm-up Enrichment table HAS to be set to 100. MS does not have separate entry or exit conditions for Warm-up enrichment, so if your last cells setup as 60C and 110% correction, it will continue to apply a 110% correction. Dumb...Weak code.





Ignition and Fuel
These are my current AFR, VE and Ignition tables. The VE table absolute values are overall too low – This is because the built in “Required Fuel” calculator in MS sucks. You tell it the displacement and injector size and it figures out the base pulse width. Essentially, this is a master fuel trim. If I we’re very concerned with it, I’d lower the Req fuel value and re-calibrate the VE map, however so long as it delivers the target AF it doesn’t matter. The VE table is pretty good all over, however some little pockets are still probably not calibrated correctly. For a road tune its pretty good. Full load logs are also pretty well dialed in and conservative. Currently, I’ve set the boost to 1.2bar which feels very good and should be a relatively safe limit on the VF24.




Acceleration Enrichment and Over-run fuel cut
This is my current accel enrichment and trailing throttle fuel cut setup. It's okay, may need more refinement. These mainly control drivability issues like "buck and bobble" at both heavy accels and light tip in. The MS code surrounding these features is very weak and thus makes it hard to optimize it for all conditions. I have it drive relatively normally 95% of the time, however I think there may always be little issues with this.



Issues
Some issues I noticed...I'm being critical, for $300 I think this is still a good value, however these are real problems.
  • For the MAP sensor calibration, you can only use a 2 point cal and you have to use voltage values of 0 and 5 volts. You cannot change those to say, .5 and 4.5 volts. MS will also not accept a value of less than -100kPa for the 0 point. Physically this makes sense, however on the stock EJ20K sensor (Denso 2201aa090) "0v" would be equal to -160kPa. It's just the way the scaling works out. So, I had to spend extra on a GM MAP sensor.
  • Overall, there are many weakness in the control logic. For example - I had an issue with the car entering closed loop idle while engine braking. There is no option to use a vehicle speed input - you can only select a time constant for how long to keep the valve closed above a certain engine speed. Very, very basic logic. I found similar issues with warm up enrichment, accel enrichment, MAT Ignition correct...MS code is very rudimentary when compared to other systems.
  • A number of issues with Batch fire, described above
  • The logging software "Megalog viewer" only lets you analyze 400 points of data with the free software. It's $40 to upgrade. This is almost always included with most stand-alone's. I've been using Data Zap
  • Tuner-studio locks out most of its useful features in the free version. Its $60 to upgrade to software that's comparable to software that's usually included with most other systems.
  • Table sizes are pretty small for VE, Ignition and AFR. This coarseness makes it hard to really optimize the calibration for all conditions.
  • VR circuit issues are crazy. I did a TON of research. Just about every MS user has issues with crank and cam inputs. This is really an essential thing that needs to be addressed. Adding resistors is such a chincy way of fixing an inherent issue with their system.
  • The Microsquirt uses an RS232 connection for it's PC interface. I had 3 laptops at home, none of them have this connection. It's not very common so you'll likely need an RS232 to USB adaptor for ~$20-40. This is super lame - never used a standalone that didn't USB. I was actually all ready to fire the car up and this delayed me which was super frustrating.
Final Thoughts
Overall, the Microsquirt did exactly what I needed from it. I’ve got a quick daily driver that’s got a tunable, configurable ECU for a very good value. However! In my opinion the Megasquirt platform has a lot of issues, and certainly MS2 (which the Micro is based on) is pretty far behind other commercially available standalones I’ve used. It required MUCH greater effort to get it configured and working properly. Also, the documentation is all over the place – Conflicting wiring diagrams, manuals with old info that don’t have easily identifiable dates, so it’s hard to determine if your using the most up to date info. All kinds of bad info out on the forums too. DIY Autotune customer support was okay, but they offered nothing more than what’s available on the forums or in the manuals. In fact, that was a common theme on the support forums and FB pages – Short snarky replies that link you to the same manual you’ve already read 8 times. It was quite a frustrating experience, especially coming from using much higher end stuff. But! The catch-all caveat – Its 300 Bucks! Yeah, about that…

By the time you buy the module, harness, software upgrades, resistor packs for IAC, Map Sensor, 36 tooth crank pulley, RS232 Adaptor…all the little odds and ends you need to get it to work right, your at about a $550 total investment. If I could go back in time, I’d spend an extra roughly 200 bucks on a Link G4+ Atom (I’ve seen them as low as $700-800 new). It can use all the stock sensors, It’s VR input has no issue with the 6/7 trigger (No resistor bullshit required), the tuning and logging software is free, better, and complete without an added cost, it has 4 ignition and injection channels so you can run sequential injection, it comes with decent base maps so your configuration effort is less, and the control logic is overall far more advanced than MS. I’m not sure what else to say other than it’s just a much, much better module in just about every way I can think of and it would have saved me a major 10+ day headache of de-bugging the MS.

Again, you can download my Megasquirt .msq file in the drive folder linked above and check out the entire calibration I've built. It's still not 100% but would be a good starting point for the same engine. If there's anything I've missed, or you have any questions about something specific I didn't post let me know!
 

·
Registered
1996
Joined
·
16 Posts
Deleted.

Reread your post a found my answer about 6/7. I dont want to take the timing belt off yet. Then i would have to get new parts since im already in there. Was planing to do all the service over winter. Wish the 6/7 worked better.
 

·
Premium Member
98 2.5RS - V2 WRX Swap
Joined
·
1,595 Posts
Discussion Starter #3
Deleted.

Reread your post a found my answer about 6/7. I dont want to take the timing belt off yet. Then i would have to get new parts since im already in there. Was planing to do all the service over winter. Wish the 6/7 worked better.
It's really not a whole lot of trouble to swap the crank pulley. You can re-use all the existing parts...you just have to re-set the timing once you've swapped the pulleys.

Or, better yet, Figure out a better way to make the 6/7 pattern work and share with the world. :sunny:
 

·
Premium Member
2001 SRP 2.5RS/RA/SOHC Monster
Joined
·
2,740 Posts
I had issues with 36-2-2-2 in mine. Car will run with 6/7. Completely flummoxed.
 

·
Registered
1996
Joined
·
16 Posts
im not that smart to figure it out! hahaa.

so ill try with the 6/7 first.

fryphax; did you have to wire in any resistors?

can you share your install and settings?

thanks
 

·
Premium Member
2001 SRP 2.5RS/RA/SOHC Monster
Joined
·
2,740 Posts
I did not. I'm using the ms3Pro so I shouldn't have to. Newer revisions of MS are supposed to work out of the box with both trigger wheel set-ups. You can find a lot of information in my build thread. I have my MSQ somewhere but it's not really going to be much help as I've only just gotten the car to run.
 

·
Registered
1996
Joined
·
16 Posts
Hope its ok with OP if i keep asking questions on his thread. It might help other decide which route to take.

Why did you get the ms3pro instead of say haltech elite 750. Which is $1400 with premium harness/relay box on ebay.

My original plan was to use haltech elite 750 instead of iwre harness merge.
But the price of the microsquirt is really attractive.
 

·
Premium Member
2001 SRP 2.5RS/RA/SOHC Monster
Joined
·
2,740 Posts
Because I like Megasquirt. It's what I have experience with and the MS3Pro is also a more powerful ecu than the Haltech. Just compare the feature lists.
 

·
Premium Member
98 2.5RS - V2 WRX Swap
Joined
·
1,595 Posts
Discussion Starter #10 (Edited)
Hope its ok with OP if i keep asking questions on his thread. It might help other decide which route to take.

Why did you get the ms3pro instead of say haltech elite 750. Which is $1400 with premium harness/relay box on ebay.

My original plan was to use haltech elite 750 instead of iwre harness merge.
But the price of the microsquirt is really attractive.
Of course it's no problem.

Like I said in the original post...If I could go back in time I'd get a Link Atom. Essentially it's the cheapest "high end" ECU with the minimum I/O requirements for this project. I also really like Link. I don't know much about the Haltech stuff so I can't comment directly. However I will say it's not as easy as comparing a feature list because whats important is How each feature is implemented. In my opinion, the MS uses very simplified logic to implement a lot of it's features and it is a clear disadvantage. Let's look at accel enrichment as an example...

Both MS and Link offer acceleration enrichment (AE). This is a common feature. MS and Link implement them in completely different way's. The MS logic is not nearly as complex as Link. The parameters governing AE in MS are:
  • The main input is Throttle position gradient or MAP gradient (Essentially the rate at which either variable is changing)
  • There's a threshold for each above which AE is active
  • Once Active, there's an additive term for injector pulse-width that is delivered on top of the current PW based on the current TPS Gradient
  • There is a single constant value added at -40C
  • There is a single multiplicative value at -40C
  • You have the same options for both MAP and TPS bases AE and can set a weighted percentage strength of each, however almost always it's used as one or the other
  • There is no control based on engine load
  • There is no way to control the rate at which the AE is applied or removed
  • There is no way to control how long the correction is applied for
  • You only get one 4x1 table and a couple of constants

Here's how Link controls
  • Control mode is selected based on either MAP or TPS. TPS is more commonly used
  • You can use a MAP or MAF value for load corrections
  • Accel sensitivity - a trigger threshold for MAP or TPS rate above which AE is active
  • Deadband on the input channel to help filter noise
  • Hold time - How long the correction is applied for in injection events
  • Decay time - a rate of decreasing correction proportional to the original correction value
  • Accel Clamp - a 1D table that sets the maximum possible value of AE correction based on engine speed
  • Accel cold correction - a 1D table multiplicative value for AE based on engine coolant temp
  • The cold correction gives you a table of values to calibrate, not just a constant
  • The rate at which the correction is applied a removed is controllable
  • You have one 14x1 Table, one 11x1 Table, one 12x1 Table, and a bunch of constants
Key difference is the Link control is based on a RANGE of engine speed AND load AND TPS gradient AND Coolant temp.
MS gives you one value that's only based on a range TPS gradient. This value is then given 1 constant and 1 multaplicative correction based on 1 non-calibrate-able coolant temp.


So, Same feature, far different implementation, and one is objectively better than the other. I'm not trying to hate on MS, but IMO these sort of deficiencies in their code are all over the place.

I also am not convinced that the MS3 Pro doesn't have VR sensor issues. There's dozens of threads both on the MS support forum and on the FB page related to VR input issues. MS3 Pro literally uses small circuit board mounted potentiometers to adjust the triggering thresholds for the VR conditioning circuit. All other modern ECU's use software to control this, and there are calibrate-able values based on engine speed so triggering can be accomplished at a range of operating speeds. MS uses, frankly, the most basic way of conditioning and it shows.
 

·
Registered
1996
Joined
·
16 Posts
i already knew this but you made me realize i should just have iwire merge my harness and get an stand alone ecu later. just to much to try and understand for my simple mind.

its like someone else said that its so cheap you just want to get it. yet so cheap that you might not even finish the project. for me i think i would just end up spending the money on the microsquirt then cant get it running and spend more money for a merge and oem ecu.

thanks for taking the time to put all this info together.
 

·
Registered
Joined
·
1 Posts
So I've got a microsquirt in the mail and I jumped the gun and grabbed a 36-2-2-2 wheel, do I also need the sti's (what I assume is a) 3 wire sensor? After getting mixed results of if an sti's sensor is or isn't 3 wire I figured I ask here if I can just use my stock crank sensor. Thanks!
 

·
Premium Member
98 2.5RS - V2 WRX Swap
Joined
·
1,595 Posts
Discussion Starter #13
So I've got a microsquirt in the mail and I jumped the gun and grabbed a 36-2-2-2 wheel, do I also need the sti's (what I assume is a) 3 wire sensor? After getting mixed results of if an sti's sensor is or isn't 3 wire I figured I ask here if I can just use my stock crank sensor. Thanks!
Hey, sorry I never saw this...I hope you already have an answer, but I'll comment anyway.

No, you don't need a 3 wire sensor. The stock sensor works fine.
 

·
Premium Member
98 2.5RS - V2 WRX Swap
Joined
·
1,595 Posts
Discussion Starter #15
Thank you very much for this writeup.

Sorry about the batch injection.
It's not so bad. I should write a follow up to the original post. I've made a lot of progress on the calibration side of things. It's actually pretty darn good now.
 

·
Premium Member
98 2.5RS - V2 WRX Swap
Joined
·
1,595 Posts
Discussion Starter #17
Getting More out of Microsquirt

Okay, so over the last many months with the Micro I've found some ways to improve a number of calibrations that make the car better / easier / nicer to drive every day.

Improving VE table resolution

The numbers in the VE table are sort of arbitrary. If everything was setup correctly, it could be that a value of 100 actually represented 100% volumetric efficiency. In the MS code, the fuel delivered at the injectors is equal to "Required Fuel" * VE Table Value * Enrichment corrections. Required fuel is an injector constant that is supposed to be equal to the pulsewidth at 100% VE, however it can be used as a global factor to scale the VE table up and down. After my first round of tuning, I found that the max value in my VE table was ~88. That's a pretty small value for 1.4 bar of boost at ~7K RPM, so I wanted to re-scale the table for a couple of reasons:

1.) The VE table has a minimum increment/decrement value of 1. At idle, a change in 1 VE represented too big of a change and I found that area of the map to be a bit coarse.
2.) The VE table has a maximum allowable value of 255, so with a max value in my calibration at ~90, I wasn't even using half the possible range of the parameter.

Re-scaling is easy by reducing the Req Fuel value. By reducing the "base" pulse-width value, we need to increase the VE value to deliver an equal amount of fuel. So, I chose a Req fuel value of 3 since this would put the maximum value in my table at ~200. The New VE Table value is = Old VE Table value x 200 / Largest Old VE Table Value. My table went from:
Old Table


New Table


So now, for example, at 1000RPM / 35 kPa (idle region) I went from a value of 53 to a value of 119. So now, if I increment this value by 1, its a ~1% change rather than a ~2% change so finer changes can be made to the VE table. Yay!

Increasing VE Table Resolution with Table Switching

The maximum fuel table size is 16x16, however by utilizing the table switching feature in MS, we can essentially double the size to 16x32. It can all be done in software by using MAP pressure as the trigger. This is how I have it setup:


So, essentially at 100kPa MAP, switch to the second VE table. So table 1 will be everything below 100kPa, and table 2 will be everything above 100kPa. I set it up so that the tables overlap, so the top row of the first table are identical as the bottom row of the second table. I did a bunch of tuning and logging and table smoothing and I also used the opportunity to re-scale the axis and came up with the following:


So now, I have more cells available at each operating point. I found overall, This improved all of the part load areas - I have more stable AFR's at almost all out-of-boost driving conditions.

Improved Closed Loop Fueling PID Settings

Updated the EGO control settings. I think it's improved. Not much else to comment here...I'm closing on idle region now also, so this helps with being too rich at idle.


Reducing Number of Squirts

I went back from 4 "squirts" per cycle to 2. This improved idle and low load cruising regions. Essentially, with 4 squirts, the required fuel mass at any operating point is divided into 4 injections. At low load, this value might get small enough that it starts bumping up against the smallest possible opening time of the injector. So, it may be requesting an open time that the injector can't perform which means it may miss an injection and cause a lean misfire condition. Dividing the fuel mass into 2 squirts means the min injector PW is twice as large as with 4 squirts, so there's more margin before getting close to the minimum open time. Changing this value will automatically adjust the Req Fuel value.


Idle Advance and Idle Target

I struggled for a while to get the idle great. What would happen is I'd get it tuned in perfectly at one condition - fully warmed up normal conditions. However, i'd then get wonky idle after a cold start, or after a hot-restart, or during the warm-up period. Sooo I sought a way to improve it. Two major changes...
1.) Utilizing Idle Advance
2.) Increasing closed-loop idle initial values

Idle advance uses a separate ignition value under closed loop idle. As soon as the ECU recognizes and switches into closed loop idle, it changes to this idle advance value. This allowed me to use a more retarded ignition value only under idle which helped stabilize a hunting idle.


I also increased the initial IAC PWM values so that the value is a bit higher than actual stabilized value. This helped prevent the engine from stalling when clutching in and or coming to a stop. This makes the RPM "hang" a little bit when entering idle, but it almost never stalls.


Air Conditioning

I figured out and setup air-conditioning control and idle up. Details can be found in my wagon journal HERE, HERE and HERE.

That's all for now! Hope this helps some people.
 

·
Registered
Joined
·
105 Posts
Awesome post, I'm having some similar issues tuning my ej251 with the project lambda software. When my engine is cold it hunts around a lot, stalls after starting and pushing the clutch in when coming to a stop like you mentioned. When its warm its not too bad but will still sometimes drop very low in the revs when coming to a stop.
My closed throttle idle timing is 11deg when warm with an extra 2deg below 50degC coolant temps (idle set at 800rpm). For some reason it switches between the base spark table and closed throttle idle, so sometimes its 13deg adv. others its 23.. I think it might be to do with the O2 sensor warming up?? Anyway, i'll keep an eye out for any more of your work!
 

·
Registered
2003 Legacy 5MT Silver
Joined
·
1 Posts
Okay, so over the last many months with the Micro I've found some ways to improve a number of calibrations that make the car better / easier / nicer to drive every day.

Improving VE table resolution

The numbers in the VE table are sort of arbitrary. If everything was setup correctly, it could be that a value of 100 actually represented 100% volumetric efficiency. In the MS code, the fuel delivered at the injectors is equal to "Required Fuel" * VE Table Value * Enrichment corrections. Required fuel is an injector constant that is supposed to be equal to the pulsewidth at 100% VE, however it can be used as a global factor to scale the VE table up and down. After my first round of tuning, I found that the max value in my VE table was ~88. That's a pretty small value for 1.4 bar of boost at ~7K RPM, so I wanted to re-scale the table for a couple of reasons:

1.) The VE table has a minimum increment/decrement value of 1. At idle, a change in 1 VE represented too big of a change and I found that area of the map to be a bit coarse.
2.) The VE table has a maximum allowable value of 255, so with a max value in my calibration at ~90, I wasn't even using half the possible range of the parameter.

Re-scaling is easy by reducing the Req Fuel value. By reducing the "base" pulse-width value, we need to increase the VE value to deliver an equal amount of fuel. So, I chose a Req fuel value of 3 since this would put the maximum value in my table at ~200. The New VE Table value is = Old VE Table value x 200 / Largest Old VE Table Value. My table went from:
Old Table


New Table


So now, for example, at 1000RPM / 35 kPa (idle region) I went from a value of 53 to a value of 119. So now, if I increment this value by 1, its a ~1% change rather than a ~2% change so finer changes can be made to the VE table. Yay!

Increasing VE Table Resolution with Table Switching

The maximum fuel table size is 16x16, however by utilizing the table switching feature in MS, we can essentially double the size to 16x32. It can all be done in software by using MAP pressure as the trigger. This is how I have it setup:


So, essentially at 100kPa MAP, switch to the second VE table. So table 1 will be everything below 100kPa, and table 2 will be everything above 100kPa. I set it up so that the tables overlap, so the top row of the first table are identical as the bottom row of the second table. I did a bunch of tuning and logging and table smoothing and I also used the opportunity to re-scale the axis and came up with the following:


So now, I have more cells available at each operating point. I found overall, This improved all of the part load areas - I have more stable AFR's at almost all out-of-boost driving conditions.

Improved Closed Loop Fueling PID Settings

Updated the EGO control settings. I think it's improved. Not much else to comment here...I'm closing on idle region now also, so this helps with being too rich at idle.


Reducing Number of Squirts

I went back from 4 "squirts" per cycle to 2. This improved idle and low load cruising regions. Essentially, with 4 squirts, the required fuel mass at any operating point is divided into 4 injections. At low load, this value might get small enough that it starts bumping up against the smallest possible opening time of the injector. So, it may be requesting an open time that the injector can't perform which means it may miss an injection and cause a lean misfire condition. Dividing the fuel mass into 2 squirts means the min injector PW is twice as large as with 4 squirts, so there's more margin before getting close to the minimum open time. Changing this value will automatically adjust the Req Fuel value.


Idle Advance and Idle Target

I struggled for a while to get the idle great. What would happen is I'd get it tuned in perfectly at one condition - fully warmed up normal conditions. However, i'd then get wonky idle after a cold start, or after a hot-restart, or during the warm-up period. Sooo I sought a way to improve it. Two major changes...
1.) Utilizing Idle Advance
2.) Increasing closed-loop idle initial values

Idle advance uses a separate ignition value under closed loop idle. As soon as the ECU recognizes and switches into closed loop idle, it changes to this idle advance value. This allowed me to use a more retarded ignition value only under idle which helped stabilize a hunting idle.


I also increased the initial IAC PWM values so that the value is a bit higher than actual stabilized value. This helped prevent the engine from stalling when clutching in and or coming to a stop. This makes the RPM "hang" a little bit when entering idle, but it almost never stalls.

Air Conditioning

I figured out and setup air-conditioning control and idle up. Details can be found in my wagon journal HERE, HERE and HERE.

That's all for now! Hope this helps some people.



Man, I just wanted to thank you for this thread. I have an 03 Legacy 5MT that I've been dying to get a custom tune on to match up with my cams. I was going to ask your opinion on the Link system until I saw this second page and response. I think a Microsquirt may be in budget and might just bet the ticket. Would you mind if I ask you for your base map and what have you in the future? It would be great to have a starting off point with this stuff. I've never messed with ECU parameters before, much less a complete standalone.



Keep up the good work, man.
 
1 - 20 of 22 Posts
Top