Is there a wiki page that explains what the various buttons on the various interfaces do? I’m having trouble figuring out z-axis calibration. Specific questions:
What does Touch Zero do? Is it the same in both web based and ground control?
In webcontrol what do the <z, <1, 1> z> buttons do?
Am I correct in assuming that the Zero sets zero at whatever position it is at at the time it is pushed? Assuming I’m correct, why does the z axis motor run for a second when pushing it?
Thanks
Is there a wiki page that explains what the various buttons on the various interfaces do? I’m having trouble figuring out z-axis calibration. Specific questions:
What does Touch Zero do? Is it the same in both web based and ground control?
if you have a touch plate enabled, it moves the bit down until it contacts the
plate and then defines that point as zero (you need to run another wire to the
sled to do this)
In webcontrol what do the <z, <1, 1> z> buttons do?
moves you in the gcode to the prior Z movement, prior 1 line, next 1 line, next
Z movement (this may or may not produce useful movement, use at your own risk.
Am I correct in assuming that the Zero sets zero at whatever position it is at at the time it is pushed? Assuming I’m correct, why does the z axis motor run for a second when pushing it?
you are correct, I’ve been meaning to ask why it enables the Z axis. It ends up
being a good confirmation that you actually pushed the button (nothing else
tells you that you did), but I don’t understand why it does this.
I don’t have a touch plate to test that this works as intended… but that’s the goal. If you try and it doesn’t work, report it so we can figure out the problem.
I’d be extremely cautious about using this in ground control and if you do, you need to make sure you have things set correctly (positioning mode, units, etc.) before pressing play. In WebControl, I’d still be cautious, but a lot of time was spent working on this feature so that it should put the machine in the proper state when you press play. I haven’t used many other gcode senders other than groundcontrol, candle, and cncjs and webcontrol does this much better than any of those. The advantage of webcontrol is that if you have to do an emergency stop (or something else happens in middle of cut that causes you to stop), you can move the index to where you left off and start the cut without worry.
That looks like a firmware thing. Both ground control and webcontrol just send “G10 Z0” to the controller. The controller then does it’s thing:
void G10(const String& readString){
/*The G10() function handles the G10 gcode which re-zeros one or all of the machine's axes.*/
float currentZPos = zAxis.read();
float zgoto = sys.inchesToMMConversion*extractGcodeValue(readString, 'Z', currentZPos/sys.inchesToMMConversion);
zAxis.set(zgoto);
zAxis.endMove(zgoto);
zAxis.attach();
}
I doubt it actually moves and I can’t specifically say why it hums. I think its related to the combination of endMove and attach functions, but I really don’t know.
the pid loop in the firmware doesn’t have a dead zone where it doesn’t apply any
power to the motor, instead if there is even the slightest error, it will drive
the motor back and forth one encoder step.
since it does it’s math in floating point mm rather than encoder steps, it’s
pretty much neve going to be at exactly the position it wants to be (that would
be a fractional encoder step in virtually every case), if the motors are
enabled, they hum at the PWM frequency as they are driven back and forth a tiny
bit.
Since our encoder resolution is so insanely high, this doesn’t result in
measureable movement, just audible movement.