PronterFace keeps sending M105 requests during long operations like G29 P1, G29 P2, G29 P4 and G26. The serial buffer fills up before the operation is complete. The problem is, a corrupted command gets executed. It is very typical for the M105 to turn into a M1 (actually... M1M105 is typical).
This causes the printer to say "Click to resume..."
This is a temporary fix until we figure out the correct way to resolve the issue.
More work needed for G26.
The changes to ultralcd.cpp for is_lcd_clicked() did not encompass the
full functionality of UBL's G29 P1, P2 and P4. It also broke G26's
ability to abort in several of its phases.
This is the first pass at fixing the problem. It has been tested for
correctness for several hours but more testing needs to be done.
There may be a few follow up patches to finish covering all the corner
cases, but right now I need to merge this before any conflicts show up.
Some of these changes will need to be moved over to the bugfix-v2.0.0
branch. That will happen a few days from now.
Example Configuration.h files are not updated yet. You need to cross
your settings over to the default Configuration.h file in the \Marlin
directory. (UBL_G26_MESH_VALIDATION enablement has moved to a new
location in the file.)
* Fix G26's circle drawing...
This mostly catches the bugfix-v1.1.x branch up to bugfix-v2.0.0
I'll have to do something similar to get bugfix-v2.0.0 caught up to
bugfix-v1.1.x
* only use planner.leveling_active if appropriate
* Change all direct changes of ubl.state.active to
set_bed_leveling_enabled() which handles apply/unapply
leveling to maintain current_position consistency.
Fix invalidation of UBL mesh to invalid unreachable
mesh points as well (delta corners).
Fix UBL_DELTA unapply_leveling logic and when
it gets applied, including fade_height changes.
Add optional M114 D for detailed position information,
disabled from compilation by default (M114_DETAIL).
* UBL_DELTA raw and inline kinematics
* UBL planner fall through fix
* consistent variable names
* Cleanup orphaned code and whitespace changes.
Use _O2.
* compile warnings cleanup
* Remove redundant #ifdef condition
- Add crc16 utility function
- Implement CRC16 for config store, remove old checksum, increment layout version
- Move UBL mesh store/load to MarlinSettings; increment UBL_VERSION
- Begin to lay out MAT structure, prototype functions, etc.
- Rename ubl.state.eeprom_storage_slot to .storage_slot
- Misc. optimization
- Cleanup/standardize/improve some messages
This is a work in progress!
* M421 Mesh Point Offset and misc. UBL clean up
Allow M421 to accept an offset as well as absolute value for a specified
mesh point.
And misc. UBL clean up to reduce redundent code.
* Better error checking for M421
* Fix M421 Y index bug
I just noticed.... We've had a Y index bug for who knows how long?
add BLTouch-related messages in english and (rusty) french;
add missing endstops.h in ultralcd.cpp;
fix misc. compiler warnings;
fix lsf_reset - ZERO macro can't handle a pointer as it would only memset the size of the pointer, not the size of the entire struct
Also... The memory corruption issue may be fixed. The GCC compiler
was inlining static functions and this caused the G29() stack frame to
become much larger than the AVR could handle.