Hi,
installed GRBL ESP32 for the first time on a self-made 3 axis router.
Homing works like a charm.
There is just one thing I don`t understand.
When all home positions are reached, the web interface shows me the following values
Xm:-5.000 (-1000mm max.)
Ym:-420.000 (-420mm max.) <---- issue
Zm:-5.000 (-120mm max.)
X and Z are fine, but why is Y at -420mm and not at -5mm?
If I use G code to go to absolute values X0 Y0 Z0, only Y goes to the other end.
Below you´ll find the configuration I consider to be useful to understand the environment.
Greetings from Germany,
Jens
1. Sources compiled ander Arduino IDE, just one adjustment in machine.h
#include "Machines/3axis_v4.h"
2. Versions
UI: 2.1b61 / FW: 1.1f (20200419)
3. GRBL parameters
$0=10
$1=250
$2=0
$3=2
$4=1
$5=0
$6=0
$10=1
$11=0.010
$12=0.002
$13=0
$20=1
$21=1
$22=1
$23=2
$24=200.000
$25=2000.000
$26=44
$27=5.000
$30=1000.000
$31=0.000
$32=0
$100=160.000
$101=160.000
$102=160.000
$110=4000.000
$111=4000.000
$112=1500.000
$120=50.000
$121=50.000
$122=50.000
$130=1000.000
$131=425.000
$132=120.000
评论 (8)
#2 – JensHauser 于 2020-06-09
Thanks for your advice, I‘m on the way to learn about these coordinate systems.
Do you see a chance to flip Y axis somewhere in the sources or so to ease my steps into CNC a little bit?
#3 – MitchBradley 于 2020-06-10
You can change the direction of the Y axis with the $3 setting – direction invert mask. It is explained in the normal GRBL documentation https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration or the pocket guide at http://www.diymachining.com/downloads/GRBLSettingsPocketGuideRevB.pdf . GrblEsp32
I see that your $3 setting is “2”. As shown in the pocket guide, “2” means “reverse Y axis”. But instead of just taking my word for it, you should read those documents carefully and experiment with the various settings, so you will come to understand them. Then you will be able to solve any other configuration problems as they occur.
#4 – JensHauser 于 2020-06-10
I understood that $3 is directly related to the direction that the motor takes to go + or -. So I used §3=2 or the equivalent $3=0 and physically changed the motor wires, say, the direction.
Both show the same result: counting the Z axis, in comparison to X and Y, has wrong sign. For me as a beginner it`s quite odd to count differently for X/Y and Z. Programming G code with relative coordinates would be easier, if all axis went positive or negative from the hard limit switch.
It may be that I didn’t get the point…. please excuse …
I am looking for some switch in config.h like
#define HOMINGFORCESET_ORIGIN, just for the Y axis
#5 – bdring 于 2020-06-10
You are talking about the machine coordinate system. Your gcode will run in work coordinate systems. Those canbe zeroed anywhere, like the corner of your workpiece.
I made video to help beginners understand this.
#6 – MitchBradley 于 2020-06-10
The choice of the work coordinate zero point is usually influenced by some practical considerations having to do with the machine and the holding fixture. On a milling machine, many people like to set the XY zero at the upper/far (away from the operator) right hand corner of the stock and the Z zero at the top of the stock. The reason for choosing the far side is because that puts the tool out of the way when you are loading the material in the clamping fixture. Having chosen the far side as Y=0, the rest of the stock is at negative Y coordinates. If you are going to work in negative space in Y, it is less confusing if you are also working in negative X, hence the choice of the right side as X=0. It is easy to “touch off” the tool to the top of the stock, and often impossible to touch-off to the bottom, so the choice of Z=0 at the top is very common.
With those choices, you are working in negative space on all axes.
You do not have to make those choices; you can set the zero at the lower left in XY, bottom of stock in Z and work in positive space. But for many machines that results in physically-inconvenient zeroing procedures.
Different kinds of machines have different characteristics in this respect. Laser engravers have no Z motion and you can “spot” the beam anywhere you want, so positive coordinates are reasonably convenient. But even so, it is easier to load and unload the material if the gantry is toward the back, so having Y=0 in the back can be convenient.
3D printers start out with no stock, so it is common to zero with the nozzle touching the center of the bed – although 3D printers usually work in machine coordinates, always have homing switches, and the firmware must know the machine envelope.
Long term, for effective CNC work, you will need to get comfortable thinking in coordinate systems that work well for your machine or machines.
#7 – JensHauser 于 2020-06-11
Thank you so much. That gave me orientation about this issue ![]()
#8 – JensHauser 于 2020-06-22
A follow-up on this issue with some thoughts I want to share.
After some time of trying and learning, I make 3D models with Autodesk Fusion 360 and generate G code. Setting the XYZ axes is a one-time task, including +/- direction and individually setting the model and raw material coordinate origin.
So don’t bother with this issue, it happens once only. The rest is handled via coordinate systems in G code and abstracted via software.
#1 – bdring 于 2020-06-09
That is likely due to homing direction and Grbl homes in negative space.
It should not matter. You will be zeroing the work coordinates anyway.