It takes 20 seconds to display the mesh values at startup... If we are going to display this information at startup, we should find a more terse way to do it. Perhaps displaying an entire row of the mesh at a time makes sense?
* Support for multiple Max7219 units in a chain
I'll move this support over to bugfix_2.0.0 in the next few days. And
then look at updating the Max7219_idle() routine to make use of multiple
units in a chain.
* spelling correction
The registers within the Max7219 can get corrupted a number of ways. This allows the Max7219 to be reset and fully initialized.
And... it also allows the user to see the initialization pattern.
There is significant downside to breaking up the long line segments on UBL Cartesian machines via the SEGMENT_LEVELED_MOVES mechanism. It adds a lot of extra computation but worse... It cuts out all of UBL's off mesh Z-Height correction checks. There have been a large number of people complaining about the nozzle going to infinity or crashing into the bed lately. They are being caused by
```
void unified_bed_leveling::line_to_destination_cartesian()
```
not watching over the segments being queued up for movement.
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.
Microstepping Pins (reverse engineered at V1.4)
Some new batches have the HR4982 (Heroic) instead of the A4982 (Allegro) as stepper driver. While most of the functionality is similar, the HR variant obviously doesn't work with diode smoothers (no fast decay). But the Heroic has a 128 µStepping mode where the A4982 is doing quarter steps (MS1=L / MS2=H). To achieve comfortable tests with the M350/M351 commands, the following definitions have to made.
G26 uses logic that looks like:
```
ex = _GET_MESH_X(i + 1) - (SIZE_OF_INTERSECTION_CIRCLES - (SIZE_OF_CROSSHAIRS));
```
The Bi-Linear macros need parenthesis to work correctly.
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.)
This is a non-intuitive change. @oldmcg says in this post https://github.com/MarlinFirmware/Marlin/issues/7572#issuecomment-340641207 that using DELTA_PRINTABLE_RADIUS is better than DELTA_PROBABLE_RADIUS for setting the probe limits. This is because the automatic probe code checks all locations for being reachable by the probe prior to doing the probe.
Also... Doing a 'Direct Commit' to see if that is 'acceptable' for small changes like this. I want to look at the commit history and see how the logs handle this type of change.
* 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
* Initial conflict resolution
All previous items resolved:
- Use of ELAPSED() on timer code
- Switch to use of defer_return_to_status=true as much as possible
- Update & Clean Up of Max7219 routines
* Resolve non-SD case in ultralcd.cpp
* use reduced sized font for some languages
* Fit Portuguese language files to existing scheme
* Rename language_pl-DOGM.h to language_pl_utf8.h
* Rename language_pl_utf8.h to language_pl-DOGM.h
* Update dogm_font_data_ISO10646_1.h
* Update dogm_font_data_ISO10646_1.h