The electro-magnetic interference from the bed and nozzle are affecting
the BL-Touch repeatability for some users. This problem can be helped
by shutting down the heaters during the actual probe event and then
quickly turning them back on.
Because this code is messing with the heaters, it is written in a
paranoid manner. It only turns the heaters back on if everything is
EXACTLY as it expects things to be. The BL-Touch probe must have been
put into a deployed state less than 20 seconds prior, or the stow()
function will NOT turn the heaters on.
This code has been tested and works for both G28 and probing functions.
Giving a negative number of probe points disables the tower angle
correction calibration ('4point' instead of '7point' solution)
EEPROM version updated
* relocated ubl state to config. store:
* removed a number of ubl state variables and padding which were largely unused - saved 58 bytes of both SRAM and EEPROM;
* modified ubl sanity_check - no longer checks removed state variables that were otherwise unused, where checking didn't seem to accomplish anything, ultimately;
* removed pre_initialized state, saving 64 bytes of SRAM;
* removed automatic saving of UBL state after UBL activation/deactivation;
* consolidated multiple GRID_MAX_POINTS_X/Y to 'Global Leveling' section of EEPROM;
* minor update to G29 Sx notes/instructions;
* renamed mesh load and save parameter to 'slot' from 'm' for clarity;
- Making M665 compatible with repetier (see
http://reprap.org/wiki/G_code#M665:_Set_delta_configuration)
- M665 B also sets the radius for manual calibration menu
- Converting tower ajustment definitions to arrays - tower angle
corrections compatible with Esher 3D wizzard
- Only tower angles need to be adjustable with M665 and stored to EEPROM
- tower radius and diag rod can be adjusted in the FW only with #define
This data corruption problem is very difficult. Just changing the code
a little bit changes whether the problem even happens and what is
affected. I need these changes in the main branch so I can operate with
the extra debug code always available and turned on.
Everything is setup such that if M100 is turned off or DEBUG(ECHO) is
turned off, the code is not affected. M100 has been made a little bit
more inteligent so it can display the serial command buffers in a more
meaningful way (because the data corruption seems to often times end up
in that area).
- On `DELTA` the `M665 H` option supplants `M206`
- On `DELTA` `NO_WORKSPACE_OFFSETS` only reverts `G92` behavior
- Spawn 4 conditionals based on `NO_WORKSPACE_OFFSETS`
- Optimize coordinate space conversion for `DELTA` workspace
- To keep EEPROM version, retain `home_offset[XYZ]`, just ignore XY
===============================================
make changes requested by reviewers
===============================================
add M43 test to Travis, fix EOL, remove trailing spaces
Pretty much... The code is in place. Still more work to do. But it
has a lot of hooks and variables in other code, so commit and merge
before I pick up a million 'Conflicts'.
The fix in #6251 for bilinear Z offset was flawed and broke the Z parameter of G29 for bilinear levelling. This is reverted and a different fix is used for the double-addition of the Z-probe offset to the bilinear correction grid.
Since run_probe was altered to return the probe Z position rather than the nozzle Z position bilinear levelling has been broken because the Z-offset has been applied twice - once in the run_probe function, and then again in the G29 code for bilinear levelling.