jounathaen / octoprint_btt_touch_support

OctoPrint Support for BTT TFT TouchScreens
2 stars 0 forks source link

Loop when the filament runout sensor is activated or print is paused #2

Open RoCkHeLuCk opened 4 days ago

RoCkHeLuCk commented 4 days ago

First, I would like to thank you for developing such a great tool. It works wonderfully.

I am using "Orca Slicer 2.2" for slicing, a "TFT 24" display, and "Marlin-2.1.2.4", the latest version of OctoPrint.

I started using this plugin today, and due to an unforeseen event (my cat), the filament broke, activating the filament break sensor. The message appeared on both the display and OctoPrint, allowing me to choose to purge and disable the filament. However, after this, the process of pausing and resuming the print enters a loop. I can only access the stop button on the display, and in OctoPrint, there is a significant delay, and everything becomes disabled.

I tried pausing the printer, and when I resumed, it fell into the same loop. It seems that the display and OctoPrint are not in sync. I tested everything without this plugin, and it worked without any issues.

jounathaen commented 1 day ago

Hi and thanks for the feedback! I tried to reproduce your unforeseen event (I think I got close, despite not having a cat :wink: ), but it worked on my machine.

The message appeared on both the display and OctoPrint, allowing me to choose to purge and disable the filament.

Once I inserted new filament, the "Disable Filament Runout" button changed to "Continue". Was this the case for you as well?

However, after this, the process of pausing and resuming the print enters a loop. I can only access the stop button on the display, and in OctoPrint, there is a significant delay, and everything becomes disabled.

Maybe this could be caused by this plugin sending the relevant action commands to all serial ports, and thus octoprint receiving the action notifications it had just sent itself :thinking: This is definitely something that could be improved.

jounathaen commented 1 day ago

I've created a new release (v0.2.0) that allows you to specify the TFT's serial port. There is a good chance, that this fixes the issue :slightly_smiling_face:

RoCkHeLuCk commented 7 hours ago

Thanks for your help and prompt response, and sorry for the delay in replying. If it's because you don't have a cat, borrow one 😉.

Your Question: Maybe you could ask your cat to reproduce such an event and post the terminal output here? Also, can you check if the relevant GCODE scripts in OctoPrint are empty (5th section in the settings)? My Answer: I don't quite understand what you mean, start, pause, filament change, end macros? If so, I use the "M300 Player" plugin to liven things up.

Your Question: Did the message appear on the display and in OctoPrint, allowing me to choose to purge and disable the filament? My Answer: Yes, on the display and in OctoPrint.

Your Question: After I inserted the new filament, the "Disable filament runout" button changed to "Continue". Was this the case for you too? My Answer: Yes, on the display and in OctoPrint.

Your Question: Question: However, after that, the process of pausing and resuming printing goes into a loop. I can only access the stop button on the display, and in OctoPrint there is a significant delay and everything is disabled. My Answer: Yes, you can see that the display and octoprint are fighting, one pauses and the other unpauses, but it only happens with this plugin. Without it, the message appears on both but it doesn't go into a loop.

Your: Maybe this could be caused by this plugin sending the relevant action commands to all serial ports and therefore octoprint receiving the action notifications that it had sent itself 🤔 This is definitely something that could be improved. I created a new version (v0.2.0) that allows you to specify the serial port of the TFT. There is a good chance that this will fix the problem 🙂 My Answer: my Octoprint and TFT are connected directly to the SKR 1.4, Marlin Serial -1 and Serial 0, I will test this new version and reproduce the occurrence again and give you feedback.

jounathaen commented 7 hours ago

Looking forward to your feedback! Just to avoid confusion: The -1 and 0 you mention is the hardware's enumeration. Marlin numbers them independently of the hardware to 1 and 2, depending on your Marlin configuration (e.g., in Configuration.h: #define SERIAL_PORT_2 -1 makes the hardware serial port -1 the second serial port). When you type M118 P1 E1 Hello there in the terminal tab in OctoPrint and you see "Hello there" on the TFT's main screen, it is connected to port 1. If that doesn't work, try M118 P2 E1 Hello there to check if it is port 2.