My Megasquirt adventures over the years

Which brings us to the next big point, idle control:
1757789952600.png

There's a lot going on here, but that's because the MS can handle several different methods of idle control devices. If you are running drive by wire (DBW), I'm not exactly sure how the MS deals with that. It has some functionality for DBW in limited capacity, but I haven't played with it. Some DBW throttle bodies might still have IACs built into them, though I'm guessing there are some that do not. These menu are more for dedicated idle valves of some variety, whether that be an on/off style high idle valve, a PWM controlled valve, or a stepper style. I have a stepper style iAC on my throttle body, so that's how these settings are configured in the screenshot.

There are two primary ways to do the idle control as well. A "simple" method that just links the IAC position to the coolant temp, and a closed loop setup that will actively try to achieve a target rpm. I started off with the simple setup and it worked okay, but as I added electric fans and other accessories that could drag the idle down when they came on, I moved to a closed loop setup to give me a more stable idle.

The main idle control window is where you will set up what kind of valve you have and how it operates. In my case it's stuff like how long each step takes, how many steps it has, and whether to keep a small current on it to hold the position. PWM valve and on/off high idle valves will have different settings.

The closed loop idle settings window is the main one where I've spent my time, though you wouldn't even touch if you leave it with the "simple" control method. The settings here let you further refine your control range and the main PID values that go into controlling the motor to achieve the idle rpm you want. There are some other novel things you can do with an idle valve as well here like opening it all the way during WOT for that little extra bit of airflow. The big one I found was the "use last value or table" setting that helped me out. I had some problems with a surging idle that would usually settle eventually, but could take some time. I tried adjusting the PID settings several different ways to see if I could get rid of the oscillation, but never found values that worked on most conditions effectively. What I learned when looking at some data logs was that my IAC position was starting way off from where it would usually settle, which meant the PID would have to be really strong to get it to move that many steps that quickly, but that would make it overly sensitive once I was closer to where I wanted to be. I changed the values in the initial values table to be closer to where it would tend to settle and suddenly my surging idle more or less went away. Now I only had to adjust maybe 5-10 steps to get where I wanted instead of 30-40, which made it easier to set the PID a little "looser" to allow for the moderate lope my cam has.

The target rpm table is pretty self explanatory and you can set as you see fit. Mine is somewhat pulled from the OEM HPT tune with a couple of tweaks to suit my preferences:
1757790805404.png
There are a bunch of different tables in HPT that seem to be something like idle targets. I used this particular one as my starting point and adjusted it a little bit to work with my cam and A/C. My car idles pretty happily around 650 rpm warm with a 50 rpm swing either way for the cam. With A/C and electric fans that might kick up to more like 750-800.

The coolant based crank steps table is what sets the IAC position during cranking. There is a semi-equivalent table in HPT, but I haven't figured out a good way to translate this yet:
1757790984467.png
The OEM setup works off of airflow, which is something I don't have an easy way to calculate. You can calculate airflow based off of rpm and VE of an engine, but I don't know what my VE is while cranking and I don't know what IAC position corresponds to what amount of airflow. Dodge instruments and measures this stuff during engine development, so they know what throttle position corresponds to what amount of airflow, and with it being a DBW based system, they can more directly command those values. Without a flow bench and a motoring dyno, I'm kind of just guessing. So far the values I have in my table seem to "just work". I think they are mostly default MS values. In the heat they have done fine. We'll see how they do once the temps drop this winter and if I need to adjust them.

The A/C settings panel is where you can do compressor clutch control stuff if your car is equipped with A/C. I finally got my system installed, so I've been playing around in here some. Most of it is pretty straightforward (what input is the A/C on switch on, what output to control the compressor with, etc.). You can set some compressor safeties here like minimum engine rpm to engage and maximum rpm to run at as well as doing a cutout during WOT to free up every little bit of horsepower. The main settings I played with here were the idle up related ones that add extra idle target rpm and IAC steps to "jump start" the idle when the compressor first kicks on. My current setup feels much more like a factory car where the A/C will cycle on and off pretty seamlessly aside from the idle increase you can hear.