Compensate for incorrect lead screw in dual motor axis
-
I recently assembled one of the WorkBee CNC derivatives. The Y axis uses two motors. The Low X side of the Y axis seems to be very accurate. The High X side of the Y axis looks to be off due to what I measure to be a slightly stretched out lead screw. Every 400 mm the High X side moves one extra mm. I am going to replace the lead screw. In the mean time I was wondering if it was possible to compensate for this in the config? No commands are jumping out at me. If I could get the motor on the High X side of the Y axis to step just a bit slower than the other one then I would have a workaround
The relevant part of my config.g:
; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S0 ; physical drive 0.1 goes backwards M569 P0.2 S0 ; physical drive 0.2 goes backwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M584 X0.0 Y0.1:0.2 Z0.3 ; set drive mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X400.00 Y400.00 Z400.00 ; set steps per mm M566 X900.00 Y900.00 Z300.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.0 Y3000.0 Z2000.0 ; set maximum speeds (mm/min) M201 X500.00 Y250.00 Z100.00 ; set accelerations (mm/s^2) M906 X2400 Y2400 Z2400 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout
-
@sh54 Can you see the difference, when you put the screws side_by_side?
Maybe it's just the left side loosing steps, due to higher friction?AFAIK, there is no way to compensate. Maybe you can try to define a separate axis for the second screw and write your own kinematic matrix to couple them...
@dc42 maybe the matrix would be the easiest place to implement this? Instead of boolean -1, 0, 1 we could set -0.nn or 1.nn for compensation.
-
@o_lampe I first just checked against a ruler and saw that over distance the bad lead screw threads were not lining up to the ruler over a longer distance. A CAD model was available for the lead screw. I generated the "negative" of it and 3d printed out a 200 mm segment. As I expected it snapped right on all my good lead screws but if I tried to snap it on to the bad lead screw it did not work and I can easily visually verify that falls out of alignment. I feel this is enough proof for me.
I am rather sure that one side is not loosing steps. This would be the good side and it looks to be very accurate. I think I will wait for a replacement lead screw. While it would be nice to be able to compensate for this I can see it being a low priority feature! Best for me to start with the right hardware.
-
@sh54 My best guess is that you have one odd imperial lead screw and the others are metric. Your config.g shows that you are using 400 steps per mm with 16X micro stepping which would be correct for an 8mm lead screw. Now 8mm is 0.314961 inches. That's very close to 5/16ths of an inch which is 0.3125 inches. So you might have a mixture of metric screws with 8mm lead and imperial with 5/16" lead.
-
@sh54 As a workaround, if the X and Y axis leadscrews are the same length, you could swap the inaccurate Y axis leadscrew onto the X axis, and adjust the X axis steps per mm. Otherwise, it sounds like the supplier has sent you one imperial leadscrew, as @deckingman suggests.
Ian
-
@deckingman Yes this could well be it.
@droftarts Nice idea but unfortunately the Y axis is longer than the X axis in machine.
I will get myself a new lead screw.