Pronterface has pretty simple code that estimates time by taking acceleration into account. You could just hard code it to use the default ultimaker fw acceleration settings, that would make it a lot closer to accurate for most people. Link to estimation code in pronterface: https://github.com/kliment/Printrun/blob/1921d2abae5c1c0ac35886f1c1f6acdeaa4dff9a/printrun/gcoder.py#L354 It still misses a few things (like taking into account maximum feedrates, acceleration of the E axis, etc) but it's a lot closer to the actual time taken than the naive approach of assuming no acceleration. As gr5 mentions, the ideal method would be to read the actual acceleration parameters from Marlin and use those in the formulas, but as it is the current estimate is basically useless, since the print time tends to vary from 1.5x to 4x of what it tells me. I haven't looked at the code, but I believe RepetierHost does something similar in how it estimates the print time.