Ultimaker / Cura

3D printer / slicing GUI built on top of the Uranium framework
GNU Lesser General Public License v3.0
6.19k stars 2.08k forks source link

Timer in pause-at-height script #9272

Closed ryanaxiom closed 1 year ago

ryanaxiom commented 3 years ago

Is your feature request related to a problem? Yes

I am using a Sidewinder X1 v4. With the stock firmwares (TFT and mainboard), Artillery added a manual pause button which seems to be preventing normal functioning of any of the existing pause commands in Cura (pause at height, color change, etc). At first, the pause command seems to work and the printer parks in the pause position but only for about 10-20 seconds and then simply proceeds on with the print. The TFT does not update with a pause indication on the screen. The TFT still has the option to push pause which does result in an actual pause but ends up being over the printed object. Filament change and all other pause options that I could find existing in the software did not work. In fact, it seemed the filament change was simply ignored. When I came back just after where the change command was, it had not ejected the filament and was happily continuing with the print (before I could insert my magnets... :( This may have something to do with the TFT firmware pause button logic since the USB and SD slots are actually included on its board. Perhaps it continues to stream the gcode after ignoring the pause since it has its own pause? Perhaps Artillery feels you should pause the print manually on the TFT and use the TFT to unload/load the filament directly.

Describe the solution you'd like Perhaps adding a G4 Sxx delay option would fix the existing functionality of the "pause at height" in CURA for affected printers since it should just wait for that time to expire. I haven't tried that yet.

Describe alternatives you've considered There are a couple of workarounds that I've found or thought of.

1) Update TFT and mainboard firmware. See https://www.thingiverse.com/thing:4294049 . I have not done this yet, but plan to do so very soon. Many have had success and digant is maintaining this. Unfortunately, due to the TFT and mainboard communication setup, it is challenging (or impossible) to update the mainboard firmware without opening the printer. I will likely do this in the next few days since there are one or two other improvements from the stock firmware that I would like to have.

2) Plane cut and print separate files one after another. To do this, one must make sure on the later files to include a part (small throwaway cylinder perhaps) that will raise the z level to at least what is required. This is needed because the printer doesn't directly raise the z height but instead will start from home and go directly to the start of the higher layer possibly hitting and dislodging the previously printed object. Further, you have to do this soon after the first print finished because it does not maintain temperatures (essentially this is like a cold pause).

3) Use the filament runout sensor to cause a hot pause. This is better and can be accomplished as in this video. https://www.youtube.com/watch?v=y_WvqhpclNc&ab_channel=Rich%27s3DArtilleryprinting . The advantage of this is that the pause will be a hot pause so the plate will stay warmed. The disadvantage is that you cannot use the filament runout sensor as intended when doing this and requires writing a new script or editing the gcode manually.

So 1 is the likely the best option but requires firmware updates and likely opening the printer to do so. 2 works without modification, but you have to manually intervene soon to keep the bed hot and make sure the second print is set not to crash into the first (by adding a waste object). 3 will give warning beeps and hot pause but requires some setup and you lose the filament runout sensor for that particular print.

Affected users and/or printers Sidewinder X1 and Genius users. Perhaps other TFT based printers? Also, anyone who wants a fixed pause length for the "pause at height/layer" script.

ryanaxiom commented 3 years ago

I haven’t tried printing via usb connection to Cura so I will try that to see if that works. Perhaps it will work that way. Printing via sd card and usb drive work as described above.

fvrmr commented 3 years ago

Hi @ryanaxiom thank you for your feature request.

I have a work around that might work for you. You can use the post processing scripts: pause at height and search and replace. With the search and replace you could search for M0 and replace it with G4 S time in sec

I have to defer this feature request because we don't maintain this firmware. Hope that this work around works for you. Please let me know if you have more questions.

GregValiant commented 3 years ago

I tried to chase this problem down because it occurred on numerous Creality machines with TFT displays and 4.2.X boards. The gcode commands that send text to the display are ignored by certain printers. In particular, M0, M1 and M117 are ignored. If you were to try adjusting the "M0" to "M0 S180" then you might get 3 minutes to make the switch (if it works). I can't test it because M0 works on my printer. Other than trying that (or @fvrmr's search and replace fix) it looks like a firmware update is required. If you use the Search and Replace option you can add multiple commands by separating them with "\n" so M0 can be replaced with M0\nG4 S180 which would leave the pause command in place and add a dwell of 3 minutes.

GregValiant commented 3 years ago

If this is still an issue I came across an alternative fix. Instead of using the Marlin (M0) use BQ(M25). The machine will complete the parking cycle and actually pause. M25 usually needs an M24 to resume but you can fool the printer into sending one to itself. When you are ready to resume use the LCD and select "Pause" and then "Resume".

github-actions[bot] commented 1 year ago

Hi 👋, We are cleaning our list of issues to improve our focus. This feature request seems to be older than a year, which is at least three major Cura releases ago. It also received the label Deferred indicating that we did not have time to work on it back then and haven't found time to work on it since.

If this is still something that you think can improve how you and others use Cura, can you please leave a comment? We will have a fresh set of eyes to look at it.

If it has been resolved or don't need it to be improved anymore, you don't have to do anything, and this issue will be automatically closed in 14 days.

github-actions[bot] commented 1 year ago

This issue was closed because it has been inactive for 14 days since being marked as stale. If you encounter this issue and still have a need for this, you are welcome to make a fresh new issue with an updated description.