The estimate on the screen is a bit of a complex piece of code, and it depends a bit on the GCode file. If you have the UM2 profile, then the UM2 will show the time estimate from Cura in the LCD panel before selecting the file.
First, it calculates how long it has been printing already. Next, it takes how far it is in the GCode file, and how long the file is. With this it calculates the total time estimate for how long the print will take.
When it has Cura estimate, it will look at how long it has been printing already, if this is less then half the time of the estimate, then it will use this estimate combined with the estimate from the "how far is the print" estimate. And depending on how far it is with printing the more the final estimate will shift towards the estimate from the actual printing time.
Or, in pseudo code:
printTime = [Time spend printing so far]
filePosition = [current read position in the gcode file]
fileSize = [total file size of the gcode file]
timeEstimateFromCura = [Time estimate from Cura, if in GCode file]
totalPrintTimeEstimate = printTime / filePosition * fileSize
if printTime < timeEstimateFromCura / 2:
f = printTime / (timeEstimateFromCura / 2)
finalEstimate = totalPrintTimeEstimate * f + timeEstimateFromCura * (1.0 - f)
else:
finalEstimate = totalPrintTimeEstimate
The "estimate by print time" is off for the first few layers because it's printing slower, so it's not that accurate at the beginning. The CuraEstimate is off due to it not accounting for acceleration.
(There is also some odd overflow bug, that causes the display to jump to 6 hours sometimes)
Recommended Posts
IRobertI 521
I haven't read through the firmware so I don't know but I'm guessing it's a simple estimation calculated based on how long the already printed layers took to print (average) * how many layers are left. That's why the estimate gets more accurate towards the end of the print. Cura probably does a more advanced calculation where it actually goes through and estimates the time for every layer all at once.
Link to post
Share on other sites