MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.28k stars 19.23k forks source link

[BUG] The abnormal PAUSE behavior #27377

Open dupaser opened 2 months ago

dupaser commented 2 months ago

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

I am using a BTT SKR PRO V1.2 and a MKS H43 DWIN display. At the moment I have version 2.0.9.5. I have tried using different versions of Marlin, but there is a problem everywhere (somewhere the movement is worked out incorrectly and sometimes the Watchdog is triggered).

When I activate #define DGUS_LCD_UI_MKS and comment //#define ADVANCED_PAUSE_FEATURE : If it is a pause with the M25 command, which is located on the USB Flash, then parking occurs correctly. But if I press the pause button on the display, then a double movement is performed (At the beginning, it goes to the pause point, but then returns to the print area). (i comment out a line queue.exhaust(); in void MKS_pause_print_move(), otherwise, the watchdog is triggered and the board is rebooted).

With St-Link debugging, it is visible that the few next commands are written to the "destination" variable after the coordinates of park position, which is not present when pausing from a USB media.

Bug Timeline

No response

Expected behavior

Stopping the nozzle at the park position

Actual behavior

Stopping the nozzle at the park position and move to next coordinate

Steps to Reproduce

define MOTHERBOARD BOARD_BTT_SKR_PRO_V1_2

define DGUS_LCD_UI_MKS

define USE_MKS_GREEN_UI

Version of Marlin Firmware

2.0.9.5

Printer model

No response

Electronics

MOTHERBOARD BOARD_BTT_SKR_PRO_V1_2

LCD/Controller

DGUS_LCD_UI_MKS

Other add-ons

No response

Bed Leveling

None

Your Slicer

None

Host Software

None

Don't forget to include

Additional information & file uploads

No response

dupaser commented 2 months ago

Update info

thisiskeithb commented 2 months ago

Please attach your bugfix-2.1.x configs.

dupaser commented 2 months ago

Good afternoon, thank you for your quick response. I downloaded your archive and configured it according to my parameters. There were issues with building the firmware in DGUS. Everywhere I made changes, I left a comment with the original value and an identifier "332211" so you could easily find them. The main problem was with the name DGUS_SCREEN_MAIN, which I replaced with DGUSLCD_SCREEN_MAIN, and DGUS_SCREEN_STATUS, which I replaced with DGUSLCD_SCREEN_STATUS. As a result, I ran my parameters and observed the same issues I described earlier. If the line is not commented out, the board restarts.

"Changes are only in /mks and in configuration files."

https://github.com/dupaser/Marlin-bugfix-2.1.x-1-

dupaser commented 2 months ago

This is solution in void MKS_pause_print_move()

if (nozzle_park_mks.print_pause_start_flag) { queue.exhaust(); }

narno2202 commented 2 months ago

@dupaser , I'm refactoring the MKS_H43 code when i saw your comment. I've already fixed some bugs and changed some wordings. Could you have a look? https://github.com/narno2202/Marlin/tree/MKS_H43