Every once in a while, someone will have their most recent set of configuration changes lost in ECMLink and they'll ask how this can happen. It's a good question, but the answer isn't straight forward because ECMLink was designed to retain settings even when battery power is disconnected for years.
So when settings are lost, it's because something in the car isn't working as it should be. And to figure out what that might be, you need to understand a few things about ECMLink's internal design.
First, there are two “areas” of ECMLink settings: ECU Config and Direct Access
When you make changes in the ECU Config area of V3 ECMLink and click Save to ECU, the settings are stored only in volatile (RAM) memory until the ignition switch is turned off.
Pro: This allows for changes to be made to these settings while the engine is running.
Con: This leaves those changes subject to loss if battery power to the ECU suddenly drops before the ECMLink code has a chance to move those settings into permanent flash.
ECMLink moves those settings into flash automatically when you turn the ignition key off. There's a period of 6-10 seconds in between when the ignition key goes off and the MFI relay powers down (which powers down the ECU). ECMLink makes use of that time to store RAM-based settings to flash.
You can also force the ECU to save those settings to flash by making some trivial Direct Access change and saving that to the ECU. More on that below.
When you make changes in the Direct Access area of ECMLink and click Save to ECU, the ECU is put into reflash mode and the changes are stored immediately to permanent flash.
Pro: Because the settings are stored immediately to flash, the settings can never be lost.
Con: This requires that the engine be stopped (so that the ECU can enter reflash mode).
It's also worth noting that before the ECU can be put into reflash mode, the ECMLink code first moves all current ECU Config changes into flash.
So what's the issue? Well, there are a couple cases that come up every once in a while where the assumptions above don't apply on a particular car.
Some cars (very few, but some) do not have a working MFI relay. Either the owner didn't want an MFI relay in the circuit (typically in a race-only setup where all the wiring was completely redone from ground up) or the MFI relay stopped working in someone's car and instead of replacing the MFI relay, they simply wired around it so that the ECU is immediately shut down when the ignition key goes off.
In either of those two cases, the ECMLink code does not have a chance to save your RAM-based settings to flash after you turn the ignition key off. So the settings are never stored to permanent memory and are lost when the ECU losses battery power.
Your only solution in this case is to either (1) get a working MFI relay set up back in the car (preferred) or (2) always go into Direct Access and make some trivial change to a setting there and hit Save to ECU before you turn the ignition key off.
This situation is far more common than the missing MFI relay case.
In this situation, someone's car simply does not maintain good battery voltage while cranking. This can force the ECU to reset and lose all factory learned settings (fuel trims, idle settings, etc.). But this will also lose any recent ECMLink ECU Config changes as well!
The scenario goes like this.
The ECU reset occurs so fast that you don't even really notice it. The only indication you'll have is that the check engine light will come on for 5 seconds like it normally would when the ignition key is first turned on. So watch for this as your clue that something is wrong while you're cranking the engine. If you see your check engine light suddenly come back on, then that's a problem.
The other issue you'll run into is that the ECMLink laptop application will have no idea that the settings were lost. So when you look at the settings in the ECMLink application, things will appear as they were when you last hit Save to ECU. If you exit the ECMLink application and start it back up or simply hit “disconnect” followed by “connect”, the application will re-read all the settings from the ECU and you'll see that your settings are not what you intended them to be.
But unless you do that, ECMLink will just show you what you last saved…not what's really inside the ECU. So that can definitely add to the confusion.
By far, the BEST way to solve this problem is to replace the battery with one that is capable of sustaining sufficient voltage to the ECU while cranking. Check for corroded terminals or ground connections as well.
But if that's not possible, you can always go into Direct Access and make some trivial change to a setting there and hit Save to ECU before you attempt to start the engine. That will force the current ECU Config settings to flash so that even if the ECU resets, it will just start back up with your recent changes from flash.
Another option would be to make your ECU Config changes, turn off the ignition, wait for the MFI relay to click (6-10 seconds later) and then turn the ignition key back on and crank as normal.
And one final work around would be to simply leave the engine running. As long as you don't have to restart the engine, the settings can't get dropped. When you do turn off the ignition, though, make sure to wait at least 6-10 seconds for the MFI relay to click off before attempting to start the engine.
Beginning with V3 firmware version 3.24.143 (V3lite) or 3.24.144 (full V3), when presented with a momentary drop in battery voltage the ECU will attempt to avoid losing changes and reverting to the previously-saved configuration or to defaults. However, if the voltage drop persists for too long, the ECU will still revert the settings.
Obviously these workarounds are only needed if you have this battery reset issue. As long as battery voltage is maintained to the ECU while cranking, then you don't need to do any of these things. Settings will just work naturally then.