measurements points moved 10mm to the left; measure only chosen points (e.g. not points affected by magnets proximity)

This commit is contained in:
PavelSindler 2019-03-05 20:40:08 +01:00
parent 17f095b957
commit d9e93e8a77
3 changed files with 35 additions and 3 deletions

View file

@ -3065,4 +3065,28 @@ void mbl_mode_init() {
uint8_t mbl_type = eeprom_read_byte((uint8_t*)EEPROM_MBL_TYPE);
if (mbl_type == 0xFF) e_mbl_type = e_MBL_OPTIMAL;
else e_mbl_type = mbl_type;
}
bool mbl_point_measurement_valid(uint8_t ix, uint8_t iy, uint8_t meas_points) {
//"human readable" heatbed plan
//magnet proximity influence Z coordinate measurements significantly (40 - 100 um)
//0 - measurement point is above magnet and Z coordinate can be influenced negatively
//1 - we should be in safe distance from magnets, measurement should be accurate
uint8_t valid_points_mask[7] = {
//[X_MAX,Y_MAX]
0b1111101,
0b1110111,
0b1111111,
0b0111011,
0b1110111,
0b1111111,
0b1110111,
//[0,0]
};
if (meas_points == 3) {
ix *= 3;
iy *= 3;
}
if((iy%2) == 0) return (valid_points_mask[6 - iy] & (1 << (6 - ix)));
else return (valid_points_mask[6 - iy] & (1 << ix));
}