misc. UBL fixes (#6631)

* Restore LSF functionality

Some of the typo's persisted...   Hopefully this gets them all fixed.

* Restore user's expectations of how G28 should behave

* Allow Nozzle size control with ornery host programs
master
Roxy-3D 8 years ago committed by GitHub
parent 787fdc95bb
commit d92fa40c62

@ -92,6 +92,7 @@
* un-retraction is at 1.2mm These numbers will be scaled by the specified amount * un-retraction is at 1.2mm These numbers will be scaled by the specified amount
* *
* N # Nozzle Used to control the size of nozzle diameter. If not specified, a .4mm nozzle is assumed. * N # Nozzle Used to control the size of nozzle diameter. If not specified, a .4mm nozzle is assumed.
* 'n' can be used instead if your host program does not appreciate you using 'N'.
* *
* O # Ooooze How much your nozzle will Ooooze filament while getting in position to print. This * O # Ooooze How much your nozzle will Ooooze filament while getting in position to print. This
* is over kill, but using this parameter will let you get the very first 'cicle' perfect * is over kill, but using this parameter will let you get the very first 'cicle' perfect
@ -674,7 +675,7 @@
} }
} }
if (code_seen('N')) { if (code_seen('N') || code_seen('n')) {
nozzle = code_value_float(); nozzle = code_value_float();
if (!WITHIN(nozzle, 0.1, 1.0)) { if (!WITHIN(nozzle, 0.1, 1.0)) {
SERIAL_PROTOCOLLNPGM("?Specified nozzle size not plausible."); SERIAL_PROTOCOLLNPGM("?Specified nozzle size not plausible.");

@ -3741,6 +3741,9 @@ inline void gcode_G28() {
// Disable the leveling matrix before homing // Disable the leveling matrix before homing
#if HAS_LEVELING #if HAS_LEVELING
#if ENABLED(AUTO_BED_LEVELING_UBL)
const bool bed_leveling_state_at_entry = ubl.state.active;
#endif
set_bed_leveling_enabled(false); set_bed_leveling_enabled(false);
#endif #endif
@ -3882,6 +3885,9 @@ inline void gcode_G28() {
// move to a height where we can use the full xy-area // move to a height where we can use the full xy-area
do_blocking_move_to_z(delta_clip_start_height); do_blocking_move_to_z(delta_clip_start_height);
#endif #endif
#if ENABLED(AUTO_BED_LEVELING_UBL)
set_bed_leveling_enabled(bed_leveling_state_at_entry);
#endif
clean_up_after_endstop_or_probe_move(); clean_up_after_endstop_or_probe_move();

@ -52,9 +52,9 @@ void incremental_LSF(struct linear_fit_data *lsf, float x, float y, float z) {
lsf->x2bar += sq(x); lsf->x2bar += sq(x);
lsf->y2bar += sq(y); lsf->y2bar += sq(y);
lsf->z2bar += sq(z); lsf->z2bar += sq(z);
lsf->xybar += sq(x); lsf->xybar += x*y;
lsf->xzbar += sq(x); lsf->xzbar += x*z;
lsf->yzbar += sq(y); lsf->yzbar += y*z;
lsf->max_absx = max(fabs(x), lsf->max_absx); lsf->max_absx = max(fabs(x), lsf->max_absx);
lsf->max_absy = max(fabs(y), lsf->max_absy); lsf->max_absy = max(fabs(y), lsf->max_absy);
lsf->n++; lsf->n++;

Loading…
Cancel
Save