My Megasquirt adventures over the years

At this point I thought I had things running pretty nicely (again), and I just got a new job at the end of last year that was going to have me commuting regularly again. My Viper was my go to commuter previously, but after a cam swap it was getting so loud to drive on the highway that I didn't think my ears would survive. It was also having some A/C issues (a broken blend door), that made it less than comfortable to drive on hot days. On top of that, it doesn't get the best gas mileage (go figure), so the Dart was looking more and more appealing as my standard option. It was called up for daily service and I got a lot of seat time in it and noticed while driving back and forth that my AFR readings were varying a noticeable amount between my morning and afternoon commute as the temperature rose through the day. This started the latest rabbit hole that has sunk many hours of my life over the last few days and taught me a lot about the right way to tune stuff. I dug more into the various settings and tables on the MS and found the MAT correction curve, which seemed like the hot ticket. It's what controls how much fuel is added or removed based on air temp, so with a couple of tweaks on this table I was getting more stable numbers between the morning and afternoon (more on this to come). One of the things I learned while researching the MAT correction curve is that the fuel injector settings can have an effect on them, primarily dead times/offset/whatever you want to call it (the time between the computer sending a signal and an injector first spraying any fuel).

And so the quest for OEM data began. The problem I had was that I had stock injectors. That's only a "problem" because they tend to be difficult to find good data on. People usually go aftermarket with injectors, so the companies often have data available for their products. The OEM stuff not so much. I got the idea that maybe I could pull some numbers from a stock tune file off of something like HP Tuners. The software is free to download and look through tunes with, and as luck would have it, they have a 2006 5.7 Hemi from a Chrysler 300 in the example files. Based on what I could find, it used the same injectors that were on my engine. I also took this opportunity to look through all of the various settings in HP Tuners to try to get an idea how the stock controller handled things. Looking over the timing tables I got the brain blast of how to implement the WOT and MBT tables in a more factory way. The MS has table switching functionality. Most people tend to implement this via a switch for doing stuff like running pump vs race gas or a lean vs rich tune or something like that. I decided to use it to emulate the open/closed loop functionality that OEM controllers do. Technically I'm always "closed loop" since I have wideband feedback, but I configured my setup to switch timing tables at WOT. So I can use the full MBT table for cruising and the WOT table for power. This solved a problem I had before where if I was cruising at low rpm in 6th gear and hit a steep hill and rolled into the throttle I could see the upper end of my VE table on load, but I still wasn't near 100% TPS and didn't need the "power" table. I could leave my AFR target at 14.7 and keep my timing to go with that, but on a hard stab of the throttle it now switches over to the WOT table and gives me the rich mixture and timing to go with it.

With that rabbit hole chased, I went back to seeing what over values I could pull from the HP Tuners tune to adapt to MS. I tried pulling over the VE table and the injector data, but this led to a bit of an issue one morning. I had loaded the tune in the night before and never tested it, so when I went out to go to work the next morning I couldn't get the car to start and stay running long enough to get out of the driveway. I changed stuff back later that day and tried finding some more info on the injectors online. I found some other dead time data that I tried that seemed to work better. I was never sure what size injectors they actually were though. The few places I could online that listed any info at all weren't clear about what pressure they were tested at. The Hemi runs 60 psi fuel pressure stock, but the vast majority of injector data out there is at 43 psi. It's easy enough to convert between the two, but it's never obvious whether or not you are supposed to. The car ran well enough with the new dead times I had found though, and it was actually quite smooth most of the time. I still had some nagging idle issues and weird AFRs though.

I had also added A/C recently, and I learned that my closed loop idle settings were not as good as I had hoped. When the A/C kicked on, I would get a lot of idle surging and AFRs swinging all over the place. I tried playing with the PID settings and I could get it to work okay, but it was never really consistent. I finally learned while sitting in the parking lot at lunch one day watching the gauges what was really going on. Long story short, I have a programmed starting position for the IAC based on temperature and rpm set point, and it was waaaay of where the car actually wanted to settle when it finally would. I adjusted the starting position to be just a bit above where it likes to settle and magically it would actually idle pretty stably now. I still get a little surging if I turn the A/C on right after starting the car, but I'm continuing to work on that. I still had some strange issues with AFRs during warmup and initial starts though.

On a cold start the car likes to idle pretty lean (like 16-17:1), but when I'm actually driving it will run rich (like 14:1). The rich part is fine as my EGO control doesn't come on till 160 degree coolant temp, and it's set to run rich, but that didn't explain why the idle was lean if it ran rich otherwise. Then, once the car heats up, it liked to idle rich (like 14.4:1), but would run lean while driving (15:1). I also recently watched some interviews with Greg Banish (former OEM engine calibrator, really interesting stuff) and he was stressing the importance of having really accurate injector data as on speed density systems, that's kind of where everything starts and any errors there just compound down the line. So I started looking back into the injector data on HP Tuners and the equations the MS was using. I vomited numbers onto pages and pages of spreadsheets and made all sorts of graphs trying to understand what was going on. After reviewing everything, it finally clicked for me what was going on and reminded me of something I heard on the interviews. Every OEM characterizes injectors differently. The MS appears to use a more GM based approach, while Dodge takes a slightly different one. The Dodge data that I had in HP Tuners calls "zero" the moment when fuel first starts coming out of the injector. The MS calls "zero" the moment the computer sends a signal to the injector. That explained why the dead time values I tried to copy straight from HP Tuners originally were way off and caused problems when I first tried them. I made several more graphs overlaying the Dodge data with the way MS calculates things and came up with some new values I put in the car this morning. It might just be my imagination, but it felt like it was running even better this morning and more smoothly everywhere. I'm back to adjusting my VE tables all over again since I changed all the injector info, but fingers crossed this might be the "last" time I mess with it.

All of this stuff will probably make more sense with some pictures, so my plan is to go through my tune and take a bunch on screenshots to add here in the near future. My hope is to explain everything I've learned and to identify some of the snagging points that people seem to run into (at least based on what I found while researching my own issues). It's been a long ride and it's hard to believe how far I think my car has come from the first day I turned the key with the MS. I'm at the point now that I feel like I have a very "OEM-like" tune, and the goal is to make the car act as much like a modern car as possible where anyone can just turn the key and go.