Here is the Pronterface output from the probe points.
numbers on top are from the rear of the bed...
And here is, what i think, is the code that controls the probing of the round bed....
1.150 1.150 1.150 1.225 1.375 1.375 1.375 0.737 0.737 0.825 0.975 1.012 0.975 0.975 1.163 0.800 0.950 0.850 0.750 0.662 0.412 1.038 0.913 0.438 0.300 0.338 0.175 -0.137 1.363 1.050 0.375 -0.025 -0.150 -0.337 -0.600 0.313 0.313 0.075 -0.325 -0.637 -0.837 -0.837 0.112 0.112 0.112 -0.538 -0.925 -0.925 -0.925
numbers on top are from the rear of the bed...
And here is, what i think, is the code that controls the probing of the round bed....
void calibrate_print_surface(float z_offset) { for (int y = 3; y >= -3; y--) { int dir = y % 2 ? -1 : 1; for (int x = -3*dir; x != 4*dir; x += dir) { if (x*x + y*y < 11) { destination[X_AXIS] = AUTOLEVEL_GRID * x - z_probe_offset[X_AXIS]; destination[Y_AXIS] = AUTOLEVEL_GRID * y - z_probe_offset[Y_AXIS]; bed_level[x+3][y+3] = z_probe() + z_offset; } else { bed_level[x+3][y+3] = 0.0; } } // For unprobed positions just copy nearest neighbor. if (abs(y) >= 3) { bed_level[1][y+3] = bed_level[2][y+3]; bed_level[5][y+3] = bed_level[4][y+3]; } if (abs(y) >=2) { bed_level[0][y+3] = bed_level[1][y+3]; bed_level[6][y+3] = bed_level[5][y+3]; } // Print calibration results for manual frame adjustment. for (int x = -3; x <= 3; x++) { SERIAL_PROTOCOL_F(bed_level[x+3][y+3], 3); SERIAL_PROTOCOLPGM(" "); } SERIAL_ECHOLN(""); } }I only know some basic stuff....so i am unsure if this can be changed to do a square bed.