Closed fleek closed 4 years ago
I traced the function to dwin.cpp
`/ Leveling /
void HMI_Leveling(void) { Popup_Window_Leveling(); DWIN_UpdateLCD(); queue.inject_P(PSTR("G29")); }`
Currently it is only injecting G29, however, if there is no prior G28 being done, it will result in a hang of the machine. Is there a way to check if G28 was performed before? Otherwise could a forceful G28 be injected prior to G29?
Sorry, I am not quite familiar with the marlin code, so I need to ask before I do something silly.
@fleek - This is one of the patches I finalised last week but didn't get a chance to submit...
I suggest: G28 O\nG29\nM420 S1\n
- otherwise the machine doesn't have a way to enable to grid to be used.
M420 S1 is to enable the use of the grid after a G28 because G28 disables the grid usage. However, when a G29 is issued, the grid usage is automatically enabled. G28 O\nG29\nM500 would be more appropriate as it will save the probed grid to EEPROM.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Bug Description
Selecting the bed leveling option on the controller will freeze the machine if Autohome was not selected prior.
My Configurations
Marlin-bugfix-2.0.x-Ender3V2-BLTouchOn5Pin-18Jul2020.zip
Required: Please include a ZIP file containing your
Configuration.h
andConfiguration_adv.h
files.Steps to Reproduce
Additional Information
G29 expects a prior G28. However, if the menu option for G29 was not chosen in sequence after a G28 (Autohome), it will freeze the machine.
To check if Autohome was being done and if not issue G28 command prior to G29.