|
|
@ -1365,7 +1365,7 @@ inline void set_destination_to_current() { memcpy(destination, current_position,
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
if (verbose_level > 2) {
|
|
|
|
if (verbose_level > 2) {
|
|
|
|
SERIAL_PROTOCOLPGM(MSG_BED);
|
|
|
|
SERIAL_PROTOCOLPGM("Bed");
|
|
|
|
SERIAL_PROTOCOLPGM(" X: ");
|
|
|
|
SERIAL_PROTOCOLPGM(" X: ");
|
|
|
|
SERIAL_PROTOCOL_F(x, 3);
|
|
|
|
SERIAL_PROTOCOL_F(x, 3);
|
|
|
|
SERIAL_PROTOCOLPGM(" Y: ");
|
|
|
|
SERIAL_PROTOCOLPGM(" Y: ");
|
|
|
@ -2514,7 +2514,7 @@ inline void gcode_G28() {
|
|
|
|
feedrate = homing_feedrate[Z_AXIS];
|
|
|
|
feedrate = homing_feedrate[Z_AXIS];
|
|
|
|
|
|
|
|
|
|
|
|
run_z_probe();
|
|
|
|
run_z_probe();
|
|
|
|
SERIAL_PROTOCOLPGM(MSG_BED);
|
|
|
|
SERIAL_PROTOCOLPGM("Bed");
|
|
|
|
SERIAL_PROTOCOLPGM(" X: ");
|
|
|
|
SERIAL_PROTOCOLPGM(" X: ");
|
|
|
|
SERIAL_PROTOCOL(current_position[X_AXIS] + 0.0001);
|
|
|
|
SERIAL_PROTOCOL(current_position[X_AXIS] + 0.0001);
|
|
|
|
SERIAL_PROTOCOLPGM(" Y: ");
|
|
|
|
SERIAL_PROTOCOLPGM(" Y: ");
|
|
|
@ -2852,7 +2852,7 @@ inline void gcode_M42() {
|
|
|
|
inline void gcode_M48() {
|
|
|
|
inline void gcode_M48() {
|
|
|
|
|
|
|
|
|
|
|
|
double sum = 0.0, mean = 0.0, sigma = 0.0, sample_set[50];
|
|
|
|
double sum = 0.0, mean = 0.0, sigma = 0.0, sample_set[50];
|
|
|
|
int verbose_level = 1, n_samples = 10, n_legs = 0;
|
|
|
|
uint8_t verbose_level = 1, n_samples = 10, n_legs = 0;
|
|
|
|
|
|
|
|
|
|
|
|
if (code_seen('V') || code_seen('v')) {
|
|
|
|
if (code_seen('V') || code_seen('v')) {
|
|
|
|
verbose_level = code_value_short();
|
|
|
|
verbose_level = code_value_short();
|
|
|
@ -2960,7 +2960,7 @@ inline void gcode_M42() {
|
|
|
|
|
|
|
|
|
|
|
|
if (deploy_probe_for_each_reading) stow_z_probe();
|
|
|
|
if (deploy_probe_for_each_reading) stow_z_probe();
|
|
|
|
|
|
|
|
|
|
|
|
for (uint16_t n=0; n < n_samples; n++) {
|
|
|
|
for (uint8_t n=0; n < n_samples; n++) {
|
|
|
|
|
|
|
|
|
|
|
|
do_blocking_move_to(X_probe_location, Y_probe_location, Z_start_location); // Make sure we are at the probe location
|
|
|
|
do_blocking_move_to(X_probe_location, Y_probe_location, Z_start_location); // Make sure we are at the probe location
|
|
|
|
|
|
|
|
|
|
|
@ -2975,7 +2975,7 @@ inline void gcode_M42() {
|
|
|
|
//SERIAL_ECHOPAIR(" direction: ",dir);
|
|
|
|
//SERIAL_ECHOPAIR(" direction: ",dir);
|
|
|
|
//SERIAL_EOL;
|
|
|
|
//SERIAL_EOL;
|
|
|
|
|
|
|
|
|
|
|
|
for (int l = 0; l < n_legs - 1; l++) {
|
|
|
|
for (uint8_t l = 0; l < n_legs - 1; l++) {
|
|
|
|
ms = millis();
|
|
|
|
ms = millis();
|
|
|
|
theta += RADIANS(dir * (ms % 20L));
|
|
|
|
theta += RADIANS(dir * (ms % 20L));
|
|
|
|
radius += (ms % 10L) - 5L;
|
|
|
|
radius += (ms % 10L) - 5L;
|
|
|
@ -3014,7 +3014,7 @@ inline void gcode_M42() {
|
|
|
|
// Get the current mean for the data points we have so far
|
|
|
|
// Get the current mean for the data points we have so far
|
|
|
|
//
|
|
|
|
//
|
|
|
|
sum = 0.0;
|
|
|
|
sum = 0.0;
|
|
|
|
for (int j = 0; j <= n; j++) sum += sample_set[j];
|
|
|
|
for (uint8_t j = 0; j <= n; j++) sum += sample_set[j];
|
|
|
|
mean = sum / (n + 1);
|
|
|
|
mean = sum / (n + 1);
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
@ -3022,7 +3022,7 @@ inline void gcode_M42() {
|
|
|
|
// data points we have so far
|
|
|
|
// data points we have so far
|
|
|
|
//
|
|
|
|
//
|
|
|
|
sum = 0.0;
|
|
|
|
sum = 0.0;
|
|
|
|
for (int j = 0; j <= n; j++) {
|
|
|
|
for (uint8_t j = 0; j <= n; j++) {
|
|
|
|
float ss = sample_set[j] - mean;
|
|
|
|
float ss = sample_set[j] - mean;
|
|
|
|
sum += ss * ss;
|
|
|
|
sum += ss * ss;
|
|
|
|
}
|
|
|
|
}
|
|
|
|