Parameter Access from Dash Terminal

A project log for ECUality1

A light, open-source Engine Control Unit (ECU) using Arduino

Mike ThielvoldtMike Thielvoldt 03/16/2016 at 21:050 Comments

The Problem: poor parameter access

I was having this experience where something would be not quite right, but I couldn't do anything about it until I broke out the laptop and plugged into the USB. Most of the time it would be a simple matter like a parameter was a little high or low, but sometimes even the laptop didn't give me enough access to fix those problems.

An example: When the engine is cold, the mixture is fuel-rich to compensate for the lower available thermal energy for ignition. In the carburetor days, the engine would be said to be "on the choke". Of course, as the engine warms up, the extra enrichment can taper off. The exact shape of this enrichment curve is experimentally determined, since it would be impractical to model all of the contributing factors, but easy to just try numbers and listen.

And yet, I found it difficult to hook up the laptop and tune by ear. Not only is the laptop clunky and not always present, but I also couldn't send inputs very quickly, because I had to copy and paste a whole new pair of arrays into the terminal window. As the engine warmed up, I would lose my chance to tune.

The Answer: a button-navigable menu of all parameters

Having only 20 buttons and about as many parameters, I decided to use two buttons to scroll (up or down) through the list of parameters. The selected parameter can then be increased or decreased by two more buttons, and a final pair of buttons amplifies or diminishes the effect of each increase or decrease button-press. In other words those final two buttons let you determine the coarseness of your adjustments. A final button is used to select which point on the curve you're editing in the case that the "parameter" you are editing is actually a curve.

So if you're tuning the cold-engine enrichment curve, you would tell the ECU to auto-report the coolant temperature on the screen, then navigate to the enrichment-curve and select the point nearest the current coolant temperature. Now, nudge the enrichment number up or down until you like how it sounds, and move on to the next point on the curve as the engine warms up.

All I can say is: I love easy access!~