C Peter Lotz wrote:
@dlang I don’t (and wouldn’t) disagree with anything you say-
disagree away, I’ve been wrong before and will be wrong again.
And sorry, no drawings, not an option at the moment.
This thread started with
I’m not going to second guess his intent, but the specific issue I’m trying to
address is not zeroing the Z axis per se, but rather to find the Z offsets
between the belts’ anchors and spools, in order to calculate and account for
the effect on the belts’ length
the calculation used in the code is:
belt_length = sqrt(x_offset^2+y_offset^2+z_offset^2)
so the math is taking the z offset for that belt into account. due to the
shallow angle, there isn’t a lot of effect of including the z offset, but there
is some (when x and y offsets are a minimum of around600 and going up over
3000, a z offset in the tens of mm to about 100mm isn’t changing the belt length
much)
Completely agree- - but as far as I can recall, every discussion about
shifting the Z position of the anchors has been in the context of increasing
accuracy by reducing or eliminating the effect on the belts’ length, and there
have in fact been discussions about the advantages of having a down angle on
the belts.
I’m actually more interested in avoiding tipping forces on the sled actually.
but during calibration, where it assumes that Z=0, if it isn’t, that will throw
error into the calculations.
In order to be used to provide the needed compensation of the belt lengths, the measurement has to be correlated to the Z position(s) of the anchor(s).
I was thinking that if you calibrate on a bare floor, and then add a inch or two
of material when you cut (fasterners, spoilboard, workpiece) then the machine
won’t feed out as much belt as it needs to as it doesn’t know about the extra Z
height.
does it matter? don’t know, it does add extra tension to the belts (and therefor
extra pull-down force, which results in more friction)
I’m generally not in favor of intentionally driving mechanisms past hard end stops, but in any case this is only an option when no bit is installed.
I generally agree, but the stepper drivers are designed to do this, their term
is ‘sensorless homing’
This process isn’t an attempt to set the Z height to its ultimate accuracy-
that’s for zeroing the bit which is a separate question (conductive contact
point to an aux GPOI input, anyone?)- this is to provide a value for
compensating for the belts’ Z offset. I would argue that it is unlikely that
anchor points are actually coplanar- either with one another or to a parallel
plane with the surface of the (likely non-planar) workpiece surface- there’s
going to be at least a millimeter or two of unknown for any realistic frame
and likely more- and the actual thickness of the spoil board and workpiece are
unlikely to match their nominal thickness nor be entirely consistent across
their entire surface. So the Z offset between the anchors and sled at any
point are going to be knowable only to a matter of multiple millimeters. And
these factors are going to affect any system, regardless of the way the Z
height is measured or calculated.
So what’s the effect of the accuracy of this Z offset on the compensation?
The closer the X/Y distance between the anchor and the end of the spool’s arm,
the greater the effect of the Z offset. So the worst case would be when the
sled is at the corner of the workspace, for the belt to the immediately
adjacent anchor. Furthermore, the effect is always most pronounced on the
uppermost spool. These two factors combined create the greatest slope of the
belt and thus the greatest offset to be compensated.
Starting with some intentionally rough numbers-
-
For the standard frame, the X/Y distance from the corner of the workspace to the adjacent anchor is about 615mm.
-
I’m not going to take my M4 apart at the moment, but it looks like the distance from the center of rotation of the router to the end of the arm is 125mm and the distance from the center of the anchor to the end of the belt end is 30mm. These two sections remain horizontal, so the diagonal section of the belt is 155mm less, or 460mm.
good guess, the hard-coded values are 123mm and 30mm in the code
-
Let’s sat the center Z height of the belt end is 20mm from the surface of
the gusset, which is coplanar with the worksurface. On top of the worksurface
is a 12mm spoil board and a 19mm workpiece- so, so far we have a net Z offset
of 11mm.
-
With the Z axis all the way down, it looks like the center of the top spool
is 102mm from the bottom of the sled. So a total Z offset of 113mm.
So the diagonal section of the belt travels a horizontal (X/Y) distance of
615mm and a vertical distance of 113mm- a little Pythagoras later and the
length of the diagonal section is 476.676mm. (Yes, I can’t claim that degree
of actual accuracy based on the rough inputs- but I’ll just use this to show
the effect of changes.) Add back in the two horizontal sections and the belt
length would be 628.676mm- that’s 14mm more than the direct X/Y distance of
615- slightly more than 2%.
I’m not following your math precisely, but you have the right idea.
the other thing to worry about is that you are pulling down on the end of the
arm, how much force is that? how steep the angle? and will that break the arm?
Let’s say the scale above is only accurate within +/-2mm - which I think is
conservative- and likely exceeded by other uncontrolled factors such as the
actual thickness of the spoil board and workpiece and how coplanar the anchors
actually are.
- A vertical offset of 115 instead of 113 would result in a belt length of 629.157- a delta of .481mm.
- A vertical offset of 111 instead of 113 would result in a belt length of 629.157- a delta of .473mm.
In the worst-case scenario, the results are 4x times as accurate as the input value.
the default z offsets are:
Maslow_tlZ: 144
Maslow_trZ: 97
Maslow_blZ: 75
Maslow_brZ: 117
so you are really only talking about the added distance of the workpiece, which
is typically under 20mm
but if you calibrate with the Z all the way down, the system knows the Z height
(assuming it’s properly tracking system Z compared to bit Z, I’ll need to check
the code) and that will be far more precise than your pointer.
David Lang