What do I plug in to get xyz probe working?
-
@JoergS5 Please can you tell me how to define tool 0?
Say I want to plug my probe into Io_1 on the board. What do I actually add to the macro to make the board understand to read the state of that port? Forgive me but I am new to this and I am not a programmer. -
@chrishornby Tool 0 was defined in the config :
; Tools
M563 P0 D0 H1 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
so you say T0 somewhere to use the tool. The macro uses T1 and then T0, but you have only tool 0 defined, so the macro doesn't know T1 (T1 = select tool 1).If you want to use a separate probe for probing, you should define this tool as second tool
P1in config and use the macro as intended where T1 starts. So the definition for the probe which pin is used and offsets is done in config. In the macro, only the T1 is used then with this definition.To help you setup the tool probe, I need to know some details about it: is it at the same position like the router and you exchange it with the router after probing or is it a separate tool with a known fixed offset to the router?
-
Hi The tool is placed at the point on your work that you wish to record as position 0,0,0. This is so you don't have to program an offset from the home position and maybe miss your piece of wood entirely. After you have probed, the CNC machine has a new home position and you remove the tool (crocodile clip attached to the bit) and replace it with the router. (Actually the router was there all along as it forms part of the XYZ sensor by completing the circuit and pulling the polarity of the pin down to 0v)
-
I have defined a T1 like
M563 P1 D0 H1 F0 ; define tool 1The probe sets off looking for something
...but still don't know how to trigger it. Where to plug in the switch and how to tell the software! Sorry if this sounds dense. -
@chrishornby if you have defined Tool 1, then you can use it by T1 and then moving with G1 commands etc. The macro has this part, starting at the T1 line, all following commands use the T1, until the T0 line comes, which switches to Tool 0. If tool 1 (probe) and tool 0 are in the same place, there must be some pause to exchange the probe with the router.
-
Sorry perhaps I am not making it clear. I have a DUET 3 and there are lots of I/O ports. I just need to know which one to use and how to tell the routine to use that port as a trigger.
-
For example, the documentation says "The Duet 2(WiFi and Ethernet) and Duet 0.8.5 provide a dedicated 4-pin connector for connecting a Z probe"
It does not mention the Duet 3
..Or maybe I just cant find it! I don't know how to define connectors, unless I have a specific example like for end stops. -
@chrishornby Now I understand what you want (I hope!!)
First the Duet 3 is very flexible which pins you use. You can use io0 to io8, the in direction together with ground. You just have to define it in configure. The pinnames for Duet 3 are named in https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview#Section_Pin_names_for_Duet_Num_3
The probelm is that your macro uses tool 1 for probing, but defining a Tool 1 would mean you need a second set of endstops for XYZ. I don't think this is possible. A bit crude solution is to combine the normal X endstop with the X trigger of the probe (some eletronic circuit: like an NO endstop and the probe trigger parallel, so if one triggers, the endstop detection triggers). The alternative to use your probe as probe: I only know it to use it as Z probe, so this is also no solution. I'll search whether I can find something.
The thread https://forum.duet3d.com/topic/12721/cnc-probing-in-xy-plane could help setting XY probing with M585.
-
That is kind of complicated for me. If I connect it up as a Z endstop then it triggers. Which I suppose I can live with. Its just that I have seen loads of Utube videos showing the probe sensing all three axes using the gizmo I have pictured. Now all I need to know is how to configure a Z offset for the depth of the device (which is a nominal 10mm but actually 9.82mm)
-
@chrishornby the probe you're using behaves like a normal switch (contact => on). So you could use your probe wiring as Z endstop for the
M574 Z2 S1 P"!io1.in"
And make a simple Z homing.
The tip of the router is then Z=0.
But you will damage the bed or workpiece, so do it carefully.You could use the other endstops the same way at the workpiece, so you can calibrate the workpiece position.
-
I guess I am asking the wrong questions. I could use another macro with G38.2 which seems the way to go, but the original question still arises. How do I tell it to use one of the pins IO_0 through 8? Just a basic programming thing...
When I define an endstop I use M574 Z2 S1 P"!io1.in"
There you are the config.g file says use io1.inI just don't know how to tell the board to use one of the many IO pins to do what I want. Before I activate the macro I need to tell it which connector to use. This is the original question I asked. The macro assumes that it knows which connector to use. It doesn't. How do I tell it?
Guess I am back to simple Z probe then...
-
@chrishornby The macro says T1 at one line and T0 at another line.
From the line T1 on the next lines, the macro uses the Tool 1 and it's config setting. So all commands use the pins defined and the offsets in config for Tool 1.
So the pin configuration, XY offsets, temparatures etc. are all defined in config for the endstop, probes and tools, so they need not to be newly defined in the macro, homeing etc. files.
Example: if you move X until the X endstop is triggered, the config has previously defined at which pin the Duet must look and which status is open or close and wheter it's the high or low endstop. If it's the low endstop eg, it can set X=0 for the M208 value of X min (for G1 H1 and if M208 X min is 0). The M208 is defined in config again.
There are some specialities in G-Code, however:
e.g. if you look into the definition of G1 https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move there are specific parameters like H0 to H3 which activate or ignore the endstops and whether movement stops at the endstop. -
Oh thanks, now we are getting somewhere. Just to be clear.
If I define an endstop. with a connection setting in config.g, then that definition will be used regardless even in a different tool?
Also I need to tell it to respond to endstops at all times, not just homing? (In G1).
If I define a specific pin for Z axis end stop, that will be also used for the probe? -
@chrishornby yes, the endstops are active for all tools. The tools have XYZ offsets, so they can be at different positions. But corrected by this offest, they are all be defined by the same endstops.
The homing defines where the XYZ movement is at the XYZ endstop (high or low). The printer defines this as the end of the possible movement for most commands. If you try to move behind the endstop, you'll get an error message and the movement is canceled. There are a few commands to ignore the endstops (with the danger to create a crash), but the "normal" movement commands like G0 and G1 behave so.
If you define the Z axis endstop, you can use it to define Z=0. You can use the router as your probe, so you don't need to change from probe to router. This may not be possible because some routers have a peak, this will be in the way, so you may need to define it as tool and change the Z value of the tool properties. The probe is mainly used if you make mash compensation, ie probing multiple points on the bed to correct the 3D print, so the first layer's adhesive is best (unevenness of bed is corrected). This is not needed in CNC IMHO.
-
Thanks, slowly getting there. Guess I need to understand the G codes and it is a steep learning curve.
-
@chrishornby this is true. If you want to learn, a good method is to follow the threads and the solutions of config problems.
-
Looks like I have it, I need to add the HI to any G1 command that is looking for an end stop command to make it trigger.
Like G1 H1 X50Is that right?
-
@chrishornby Yes, H1 sets to the M208 limit. I would make X much bigger, because it will be stopped at the endstop anyway and you don't know where you start. Make X bigger than the maximal possible movement.
In most cases there is one fast G1 H1 to the endstop (F high value), than a bit back G1 without H, than second G1 H1 movement slowly for higher precision. Just check some examples in the documentation of printer types. -
OK thanks got it
Could you tell me what the parameters in this command refer to:
M585 Z50 E2 L0 F500 S1According to the wiki
Parameter must be only one of
Xnnn
Y-nnn
Znnn -
@chrishornby M585 is for getting the tool's offset by moving against the endstop. You can only run and get value for one axis with a M585, but you can run it three times with the different axes. M585 was the preferred method of the thread I mentioned above.