Notifications
Clear all

NEW_XYZCALC help...  

  RSS
CdRsKuLL
(@cdrskull)
Active Member
NEW_XYZCALC help...

Afternoon,

I was wondering if someone could help me explain what the routine is for the new xyz calibration routine is?

From when I understand it goes to four points on the bed, these are defined in xyz.cpp
const int16_t xyzcal_point_xcoords[4] PROGMEM = {1200, 22000, 22000, 1200};
const int16_t xyzcal_point_ycoords[4] PROGMEM = {600, 600, 19800, 19800};

Just wondering are these just guides or is the skew calulation done from these points?

Also, it first starts scanning for the 'spot' at each of these points then accesses if they MATCH > 65 ..

So, it then seems to access each of the four points and ends up with an X / Y for each one.

What I'm not sur eon is what happens next? My results I'm getting are as follows

1. 1201 / 510
2. 21660 / 488
3. 21662 / 19676
4. 1202 / 19709

It's then saying calibration failed.. so I'm just trying to see what's going on. I presume the Y figures can alter depending where the bearing sits in the bed slot as it uses at it seems as an endstop.

Any help would be greatly appriciated.

Thanks,

Steve

https://pretendprusa.co.uk

Posted : 30/01/2019 2:58 pm
thrawn86
(@thrawn86)
Honorable Member
Re: NEW_XYZCALC help...


It's then saying calibration failed.. so I'm just trying to see what's going on. I presume the Y figures can alter depending where the bearing sits in the bed slot as it uses at it seems as an endstop.

Any help would be greatly appriciated.

Thanks,

Steve

thats exactly right. it finds exact axis length by bonking each one and then "searches" for where the calibration point should be. where exactly in the process does it fail? 99.9% if it can't find a cal point then its a probe distance issue.

Posted : 31/01/2019 5:27 am
CdRsKuLL
(@cdrskull)
Active Member
Topic starter answered:
Re: NEW_XYZCALC help...

Hi,

I managed to sort it after 3 days 🙂

I'm not sure if it's because I'm using non standard motors or if the clone bed is slightly out but I had to move the calibration points in the firmware. It was finding each point but I'm guessing, was to far away from where they were supposed to be. Took me ages to find what to alter in the firmware as it's in two seperate places.

I debugged it by watching the comms in Repetier host. then watched as it did each point.

For anyone else I needed to alter in mesh_bed_calibration.cpp

const float bed_ref_points_4[] PROGMEM = {
37.f - BED_PRINT_ZERO_REF_X - X_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_X,
19.f - BED_PRINT_ZERO_REF_Y - Y_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_Y,

242.f - BED_PRINT_ZERO_REF_X - X_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_X,
19.f - BED_PRINT_ZERO_REF_Y - Y_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_Y,

242.f - BED_PRINT_ZERO_REF_X - X_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_X,
212.f - BED_PRINT_ZERO_REF_Y - Y_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_Y,

37.f - BED_PRINT_ZERO_REF_X - X_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_X,
212.f - BED_PRINT_ZERO_REF_Y - Y_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_Y
};

And in xyzcal.cpp
#if ((MOTHERBOARD == BOARD_EINSY_1_0a))
//const int16_t xyzcal_point_xcoords[4] PROGMEM = {1200, 22000, 22000, 1200};
//const int16_t xyzcal_point_ycoords[4] PROGMEM = {600, 600, 19800, 19800};
const int16_t xyzcal_point_xcoords[4] PROGMEM = {1200, 21700, 21700, 1200};
const int16_t xyzcal_point_ycoords[4] PROGMEM = {700, 700, 19900, 19900};
#endif //((MOTHERBOARD == BOARD_EINSY_1_0a))

That sorted it 🙂 and it's printing it's first Benchy right now.

Thanks for replying.

Steve

https://pretendprusa.co.uk

Posted : 31/01/2019 1:43 pm
Share: