Speed Tables in the Digital Decoders.
Phil made a script which we have set up to run in the Decoder Pro and, after initialization, I enter the road number, decoder type, and scale, and hit start. The engine first does 5 warm up laps in both directions, tests for decoder type (Digitrax, NCE, Lenz, TCS, etc) and then proceeds to build the speed tables for various throttle settings based upon internal script tables figured out earlier for each type of decoder.
As each engine traverses from one block to the next, the script measures the time between blocks and uses that to calculate scale speed. It takes 5 different readings, averages and throws out any outlyers, then compares the speed to the target speed and adjusts the throttle up or down to get closer to the target speed.
For instance, it begins with 10 MPH and works the throttle settings to fine tune with in a very close margin which throttle setting makes the engine run at 10 MPH, then it goes to 22 mph (in the case of Digitrax) and finds the throtttle setting, etc. It keeps going to build the compete curve. The average amount of time per engine, so far to run the program is about 12-15 minutes but I have had engines take 30 minutes to run the whole program.
The end result is that all engines run in a similar speed pattern and I theoretically can mix and match engines. Still needs more fine tuning but it seems to work pretty well.