-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No M73 updates, an hour into print. #13
Comments
Done some investigating, and a quick 15 minute print shows the M73 info very soon after starting. Could it be that the print (which is 13 hours long) is too large for the plugin to handle? (IMO, updated M73 info should be sent every 30 seconds or so... Or whenever it changes or when it loads for the first time.) |
The plugin does not decide when the progress bar is updated. It responds to the
|
|
Octoprint always uses the builtin progress estimation algorithm for the My guess is that there is an edge case where Can you check the following, preferably with related plugins (DisplayLayerProgress, Detailed Progress) disabled?
|
Apologies for the late reply. Been recovering from a lack of sleep recently.
These tests were performed with any plugins that could interfere disabled. I have run the test for an hour and 10 minutes, the whole time, the Remaining field unfilled. Attached are some relevant photos and a copy of my octoprint.log. |
Sorry for the wait. I gave your last log a closer look, and it shows that DisplayETAPlugin is throwing a bunch of errors. Maybe that's causing issues downstream. Can you try disabling it? I've also prepared a test version that includes debug logging and extra checks for potential edge cases: To install, uninstall the existing plugin first, then upload the zip file in the OctoPrint plugin manager. This version will output a |
Here are the requested logs along with a couple pictures. |
Sorry for the late reply; paid work took priority. I took a closer look at your logs, and it seems that If this is the case, the problem is caused outside of the plugin. The root of the problem might be a conflicting plugin, so the next step would be to try with all other plugins disabled. |
No worries! Life happens. I have disabled all third-party plugins minus M73 Progress and PrintTimeGenius, and the issue can still be reproduced. Here's a copy of the log files. |
Well, the logs confirm that |
Alright. I'm disabling PrintTimeGenius and will get back to you in an hour. |
Immediately after starting the print, the time remaining is set. |
However, it doesn't seem like the time remaining info is actually updated once set. Nearly an hour into print, and it still says 11:55 remaining. |
Yup, exactly the same situation as before: I've created a minimal plugin that does nothing more than write the progress to a log file: OctoPrint-ProgressTest.zip. If the problem can be reproduced with Octoprint + this plugin (no other 3rd party plugins), then the next step would be opening an issue in the Octoprint repository. |
is it possible to enable the
|
You need custom firmware in order to be able to have progress updates on the Ender 3v2. Check out Jyers firmware. https://github.com/Jyers/Marlin/ Not sure about the original Ender 3 though. Also, sorry for the delay, Cesar. With classes and everything starting up now, I've had limited time to test the minimal plugin, or print anything in general. I'll try to install it when I get home. |
Sorry for the delay. Never got a chance to test it until today. I was able to reproduce the issue with only the plugin provided. |
No worries about the delay, and thanks for trying out the many test scenarios. The last test shows that the root cause of the bug is OctoPrint itself, not one of the plugins. I think it's best to open a new issue in the OctoPrint repo with a link to this discussion. If you want, I'll write up the issue, just let me know... |
Alright. I'll also attach the gcode file in both issues to see if someone else can repro it. The issue seems to be influenced by the particular gcode file being printed. (Packed in a ZIP, else GitHub complains.) |
@cesarvandevelde I did some testing on this for @andritolion and we suspect the issue is with the on_print_progress but not because it's not working, because it is. The issue is that even with PTG installed, the on_print_progress callback is still done on a file size based progress estimate for the increments, not the time based one of PTG. I see that you are calculating the time based progress in your callback, but that callback only gets called on the internal file based increment. PTG overrides the progress bar in the UI, not in the server side code. One way you could get around this is instead of using on_print_progress use your own RepeatedTimer thread and then use sef._printer.get_current_data(). |
That's exactly right. The The root cause of the issue is that |
I ran the file for quite some time with the virtual printer and it did increment though. |
IMO, running a RepeatedTimer thread that updates the info every 60 seconds would be a better implementation, as even though the percentage isn't changing, the time remaining countdown would be kept up to date. Additionally, the info should also be sent immediately at print start (and maybe 1 or 2 seconds after, as it doesn't seem PTG can get the time ready immediately, even if it's preanalyzed), so that the time estimate will be immediately visible upon starting the print, and not after a minute. And yes, it does eventually increment, but after approximately 1 hour, 20 minutes. Apologies if that wasn't clear from my previous messages. |
Thanks for clarifying; I was under the impression that the hook was not getting called at all. I agree that a periodic timer implementation would be better, but I can't make make any promises w.r.t. timeframe. Pull requests are welcome though, in case someone wants to have a crack at it... |
Have you the correct printer set Configuration_adv.h says:- #if EITHER(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) in my case in Configuration.h I use and leave the above uncommitted #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER // Protomaker Sprint TFT35 Dual display |
LCD_PROGRESS_BAR Have you the correct printer set Configuration_adv.h says:- #if EITHER(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) in my case in Configuration.h I use and leave the above uncommitted #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER // Protomaker Sprint TFT35 Dual display |
@ProtomakerSprint Your issue is unrelated to this discussion, and the cause is likely outside this plugin. That being said, please refer to the Marlin documentation for M73:
|
I am using Marlin; my guide to gcode says M73 not available, set percentage build
|
Formatting got a bit mucked up above; sorry |
P.S. this bar used to show, similar Marlin setting so far as I know |
Again: this is not a plugin issue but a Marlin configuration issue. Here are the relevant settings. Uncomment If that does not work, ask your printer manufacturer for support. |
M73 progress bargraph working now A Video Short shows it working, It was My CODE I changed the Code to the working code that has ****:- #define SET_PROGRESS_MANUALLY // Protomaker Sprint Show Progress using OctoPrint and M73 Plugin |
Even an hour into the print, there doesn't seem to have been any M73 updates sent to the printer, from what I could tell from watching the terminal. Any idea why that might be? Here's the last 1500 lines that I watched in the OctoPrint terminal, looking for any M73s.
OctoPrint 1.6.1, OctoPi 0.18.0, running on Raspberry Pi 4 Model B Rev 1.4
No M73 log.txt
The text was updated successfully, but these errors were encountered: