Skip to content
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

[Request] Monitoring of prints started manually #2335

Closed
atoktoto opened this issue Jan 2, 2018 · 18 comments
Closed

[Request] Monitoring of prints started manually #2335

atoktoto opened this issue Jan 2, 2018 · 18 comments
Labels
done Done but not yet released request Feature request
Milestone

Comments

@atoktoto
Copy link

atoktoto commented Jan 2, 2018

Currently Octoprint GUI does not show correct state of the printer if the print was started manually using printer controller (and printing from SD card). This might cause a conflict if someone tries to start a print while the printer is already in progress.

It this a limitation coming from printer firmware / g-code limitations?

Suggestion: introduce printer status "BUSY" for indicating that the printer is busy with a print job not driven by Octoprint.

@GitIssueBot GitIssueBot added request Feature request and removed request Feature request labels Jan 2, 2018
@foosel
Copy link
Member

foosel commented Feb 19, 2018

The thing is, OctoPrint doesn't get any info from the firmware when a print job is started directly via the controller or something. It would need to constantly poll the firmware to "report SD print status" via M27" while idle to do this.

I'm not sure if people would like the noise in the terminal that produces while idle (especially combined with the M105 polls when the firmware isn't detected to support temperature auto reporting). But it's something that could be looked into.

@marcboivin
Copy link

Maybe an event from the firmware would make this feasible in a clean manner

@foosel
Copy link
Member

foosel commented Feb 21, 2018

Indeed.

@teemuatlut
Copy link

Would this be as simple as

if (card.sdprinting == true & ELAPSED(10s)) { enqueue("M27") }

Basically just automate sending the sd print status if a print is in progress.

@marcboivin
Copy link

@marcboivin
Copy link

@teemuatlut or offer the user a button to trigger the manual update.

@marcboivin
Copy link

There is an experimental branch available to test. Can't test it myself until sunday.

MarlinFirmware/Marlin#9751 (comment)

@TheSFReader
Copy link

TheSFReader commented Feb 26, 2018

The pull request was merged, and the feature should be enable-able on Marlin 2.0 bugfix builds. (depending on the configuration. M115 will report whether the capability is activated with the following tag : AUTOREPORT_SD_STATUS ).

If available in the firmware, it is activated using the M27 code, with Sxxx where xxx is the period in seconds between updates (0 to disable).

@marcboivin
Copy link

@foosel Would you see this as a core feature or a plugin?

@foosel
Copy link
Member

foosel commented Mar 1, 2018

Core feature. I actually also have something semi working, still need to iron out the kinks though.

@TheSFReader
Copy link

@foosel, please note that I've also fixed a bug in the SD status report that made it return a number of bytes even when not printing. With the correction, it'll return MSG_SD_NOT_PRINTING ("Not SD printing") instead. I suppose the regexp to filter sd_status should be adjusted accordingly.

This fix should not be dependant on the enabling/disabling of the AUTOREPORT_SD_STATUS feature.

@foosel
Copy link
Member

foosel commented Mar 1, 2018

@TheSFReader Not SD printing has always been supported :) I also noticed the 0/0 style message recently and since that has been in a while I might have to support it too. Not that big of a problem though.

@TheSFReader
Copy link

On my version, and since I applied the fix, I see the "NOT SD Printing" message in the terminal even if the filter is active. Not fluent with regexps, I added a new filtering rule , but Wonder how it could be combined in the default one

@foosel
Copy link
Member

foosel commented Mar 1, 2018

Sorry, didn't realize you were referring to the terminal filters. You are right, those don't include that yet. There's also some internal processing of that message inside the comm layer that detects that and considers it as an indication that something went wrong while SD printing, switching states accordingly.

@foosel
Copy link
Member

foosel commented Mar 7, 2018

Thanks to 52bb94e and 98c7ad0 auto detection of SD prints started from the controller while connected to OctoPrint should now work IF the following requirements are fulfilled:

  • Firmware must send a "File opened: ..." message on start of the print
  • Firmware must respond to an immediately sent M27 with SD printing byte <current>/<total>
  • Firmware must stay responsive during ongoing print to allow for regular M27 polls (or push those automatically) or M25 to pause/cancel the print through OctoPrint.

e6ec48b implements support for sd status auto reporting.

bb61bbb extends the terminal filters for sd status filtering with the "Not SD printing" message.

All of that is available on maintenance, soon devel. Will be part of 1.3.7

@foosel foosel added the done Done but not yet released label Mar 7, 2018
@foosel foosel added this to the 1.3.7 milestone Mar 7, 2018
@foosel
Copy link
Member

foosel commented Apr 9, 2018

Closing as 1.3.7 was just released.

@goncalossilva
Copy link

For cases when Octoprint is restarted with an ongoing print (from SD card), is there a way to make it start tracking the print progress again?

I can see it by sending M27 myself, but it would be great to have it monitored by Octoprint itself. I understand this use case breaks the 2 first conditions in the earlier comment, as the print had already started. What I'm wondering is if I, as a user, can tell Octoprint to restart monitoring M27.

@Esteban16899
Copy link

Hey! I'm sorry to bother, but looking around i having trouble on this subject.
My printer is missing this condition:

  • Firmware must send a "File opened: ..." message on start of the print

I'm Running An Ender 3 with an SKR1.3 wich firmware I updated myself (Marlin Bugfix 2.0.x). AutoSDreport is enabled, and I see it working, but I haven´t found the way for the printer to send a "File Opened" notice whenever I start an SDPrint manually from the LCD.
Thank you!

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 24, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
done Done but not yet released request Feature request
Projects
None yet
Development

No branches or pull requests

8 participants