In recent versions of the Slicr3 Prusa edition, they've spent a lot of time providing accurate time estimations when slicing. In addition, they've added the capability of generating M73 GCODE lines every estimated minute in the GCODE. For example, here are a couple of lines from some GCODE.
M73 P76 R13
M73 Q76 S13
The first of these lines indicate that, in normal fast mode, this printout is 76% complete and has 13 Minutes remaining. The other line refers to the printer times when in stealth (quiet) mode. In this particular case there is no difference but the times for stealth mode are often a bit slower.
I'm looking for a plugin that will use this Gcode instead of the default Octoprint estimations. It would be nice if the plugin only overrode the standard when there are some M73 lines, otherwise it should behave as it does now. It would also be nice if it could 1) Detect if the printer is in stealth mode, or, if this isn't possible, provide a setup screen that would allow me to choose the mode I want it use from the Gcode.
Thanks,
Tom
PrintTimeGenius incorporates those numbers as well as some other tweaks that makes the estimate pretty accurate from what I can tell.
2 Likes
While PrintTimeGenius may be an excellent product, it does not look at the M73 lines in the GCode. Or at least a search through the source code indicates that it does not.
There are doubtless many excellent ways of estimating print time, I've never seen any quite as accurate as what Slic3r is doing. I suspect this is because the developers are able to take into account all the firmware settings in the Prusa printer and have a deeper understanding of how it will perform.
Still looking. Never wrote a plugin but interested in knowing more about getting started.
Thanks
You could review the underlying code for PrintTimeGenius and write a specific one for Slic3r, pulling out the GCODE comments or whatever is storing those estimates.
Where is the setting to enable that option @tbergman? I've been using Slic3r PE for a while and I can't seem to find it. Maybe it's because I'm not using a Prusa model for my configuration, but my Marlin does have that option enabled to utilize the M73 Progress plugin. Would like to take a stab at your plugin idea this weekend as it seems like it would be a fairly easy one to accomplish.
Someone beat me to the punch.
1 Like
The setting is under Printer Settings/General Supports remaining times.
So far I haven't been able to make the M73 ETA plugin work. The jury's still out
Has anyone used the M73 ETA plugin successfully?
Runs here with no issues.
Print time of the last print was about 45 seconds early with a total time of 02:10:55
So, your display on Octoprint matches what the printer shows on the LCD?
Ok - I finally got back to this. Fresh install of the plugin, still doesn't work. Checked the logs. The installation reports sucess.
However, After an Octoprint restart, errors appear in the log. See below
Thoughts?
2018-09-28 19:53:19,055 - octoprint.plugins.softwareupdate - ERROR - Error while retrieving update information from plugin m73etaoverride
Traceback (most recent call last):
File "/home/pi/oprint/lib/python2.7/site-packages/octoprint/plugins/softwareupdate/init.py", line 111, in _get_configured_checks
hook_checks = hook()
File "/home/pi/oprint/local/lib/python2.7/site-packages/octoprint_m73etaoverride/init.py", line 19, in get_update_information
displayName=self._plugin_name,
NameError: global name 'self' is not defined
Just after I posted the above, which is still valid (the error) I looked a bit closer at the photo above and compared it with what I see in Octoprint. Mine is in English but I don't appear to have a field that represents ETA. Should I???. Is that a standard field or something added by the plugin?
I had expected to see 01:42R value as shown on the prusa display showing in Octoprint.
I think that ETA on the sidebar is from a separate plugin, but I just forked the M73ETAOveride plugin and fixed that error. Will be submitting a pull request to original author's repository. You can try it by installing using the url below in plugin manager. Haven't tested if it works yet.
https://github.com/jneilliii/OctoPrint-M73ETAOverride/archive/master.zip
The adventure continues..........
I installed DisplayLayerProgress. I now have a nice display of layer -/-. It doesn't actually work but seems like a nice idea.
Then I looked around and found the plugin OctoPrint-Display-ETA. I installed this, it added an ETA display, and the display seems to work properly, it adds what's on my Prusa Screen to the current time and displays an ETA. This is nice, does what it says it will, and I like it.
But...... It's not exactly what I was looking for. I'm looking for something that will update the existing fields in OctoPrint. So, in my image, the fields Total Print Time and Print Time Left would also use the values in the GCODE. There are a couple of reasons I want this.
- I think it makes much more sense to have consistent, accurate numbers throughout the interface.
- I would like the ability for other software, like the monitor here to be able to read these same values from the Octoprint API.
I have no idea how possible this is, I assume there're a few plugin devs here. Does this seem feasible? Anyone looking for a challenge?
Thanks everyone for your help
I might be missing something here but the m73etaoveride plugin is changing the print time left values based on the m73 commands embedded in the gcode. I would assume that is what those other tools are getting there numbers from. You can tell if it's working during heat up; that value will be less than a minute.
None of the values in the image I show (except ETA) bear any relationship to the M73 numbers in the Gcode. They still do whatever Octoprint does by default to show estimated times. They behave the same whether or not M73 codes are in the Gcode.
I suppose I could still have something wrong with my install. Or do I need yet another plugin?
I want to revise what I said above. It does appear that the M73 codes are affecting the Print Time Left value. But they're getting rounded when over a certain time. Now that I'm closer to the end of a print, it does appear to be using the M73 value.
But approximate total print time does not appear to use this. Although I suppose if it's rounding to whole hours, it could be.
Any idea if there's a way to avoid the rounding?