Touchplate for X & Y

Im working on building a dust filter out of an old squirrel cage blower. Most of the plywood sections are just straight cuts easier to make with my track saw. But one will have the outlet for the blower in it. That made me wonder if i cut the plywood to outside dimensions with the track saw could i put it on my LR3 and use the touchplate to not only give me Z but also on the zero corner for X and Y? I would assume i would need to add a certain Gcode to the start of the cut but i have no idea what that would be or if its even possible. Thanks in advance for any advice!!!

That’s not possible for Marlin (at least it wasn’t the last time this was discussed), but if you used Estlcam as a PP, it would work. I have a touchplate like that and it’s awesome for stuff like that.

1 Like

Well that answers that then. Marlin is what im using. I was afraid of that but hopeful it could still be done

I wasn’t part of that discussion, but I don’t see why you couldn’t do it.

Single touch plate wired to all endstop inputs. Move the spindle close, Home only X (G28X), home only Y (G28Y), then home only Z (G28Z). The “difficulty” would come from creating a wiring harness where you can enable/disable this touch plate so that the dual endstops would work for normal homing operations (otherwise one physical switch toggles all the inputs).

1 Like

This might work, it has been a while. Remember that I am a complete idiot when it comes to Marlin. Estlcam has a button that I press and it works… This is what it looks like there: Drill bit holder for French Cleat - MPCNC - YouTube (I know, a little too dark…).

There is an issue with a touchplate for X and Y. Knowing the corner is not enough. You need the stock to be square with the machine as well.

A simple solution is to use pegs or rules. Use your (homed) machine to put a couple of peg holes in the spoilboard at known offsets from the machine origin on each of the X and Y axes. With pegs installed, you can push your stock against them. Since you milled the holes at a known offset from the machine origin, and the holes are a known diameter, the corner position of your stock will be known, and the stock will be square with the machine.

The start gcode will just be a G0 command to move to an offset from the origin, or if you want to be fancy, you can use a workspace. According to the docs, worksapces can be saved with an M500.

If the pegs will be in the way of the job, they can be pulled out after the stock is clamped or otherwise attached to the spoilbord.

With use, my peg holes have become a little sloppy. I’m currently using 3/8 wood dowels for my pegs. When I replace my spoilboard (soon), I’m thinking of going with larger (1/2" ?) aluminum pegs.

1 Like

Provided you have a touchplate connected, and your Marlin firmware set up to use a probe already, you can DEFINITELY do this.

I use CNCJS to send commands which supports ‘macros’ or short GCODE scripts which you can run whenever, allowing for sequences like corner probing (not sure if there are similar or equivalent features in Estlcam or others). Using a touchplate/block that I made same style as the Zero2 or original Carbide 3D BitZero. I just slap that bad boy on the corner of my workpiece, position the bit roughly above the corner, and run the macro. The machine probes for Z, sets Z, and then moves to probe for X and Y. Then I disconnect my probe and start the job. It works great! Obviously the workpiece needs to be oriented square to the machine.

This is the ‘corner probe’ macro I use, which has thickness values for my touchplate and assumes a 6.35mm router bit. You should alter those values for your specific probe and bit:

; Set user-defined variables
%ENDMILL_DIAMETER = 6.35 ;in millimeters
%PROBE_BLOCK_Z = 22.5;Thickness of 3-axis probe in Z direction
%PROBE_BLOCK_Y = 6.4 ;Thickness of 3-axis probe in Y direction
%PROBE_BLOCK_X = 6.4 ;Thickness of 3-axis probe in X direction
G54;
G21 ;make sure we’re in mm
G91 ;Incremental mode
G38.2 Z-25 F75;Probe Z
G92 Z[PROBE_BLOCK_Z];Set Current Z as plate thickness
G0 Z3 F800;lift Z 3mm
G0 X-25 ;Move left 25mm
G0 Z-10 ;Move down 10mm, should be 7mm below probe surface
G38.2 X25 F75;Probe X to the right 25mm
G92 X[-ENDMILL_DIAMETER/2 -PROBE_BLOCK_X] ;Set current X location as negative half the bit diameter
G0 X-10 F800;Move left 10mm
G0 Y-25 ;Move forward 25mm
G0 X25 ;Move right 25mm
G38.2 Y25 F75 ;Probe Y
G92 Y[-ENDMILL_DIAMETER/2 -PROBE_BLOCK_Y] ;Set current Y location as negative half the bit diameter - 7mm thickness
G0 Y-10 F800;Move Y-10
G0 Z20 ;Move Z up 10mm, should be 3mm above probe plate
G90;
G0 X0 Y0;

2 Likes

That’s really great. So the only advantage Estlcam still has is to also measure the angle of the workpiece and that is mostly not critical, I’ve never needed that.

Thank you! I will definitely give this a try! I have no issue making sure that the part is square to the machine. This was more of a “I wonder if I can” than an “I need to”. Thank you for the code and I will definitely report back when I’m able to try it

OK,
I have a question regarding touch plates, in some machines/operating systems you have the ability to permanently mount a touch probe on the cutting surface, usually right in the corner where you plan to change the bits. I have seen ones that actually ignore soft limits of the cutting area are setup to drive off the cutting area to a special area that is setup just for this.

The tool change script is programmed with this location and when the tool change is called in the cam the machine retracts to max heigh and goes to this location and waits, with motors powered and holding.
Then you are expected to do the tool change and hit go. Once you do hit GO, the tool change script immediately drives down, until touching the tool hight setter, which somehow sets the new tool hight. Honestly i am not sure how this can affect a CAM tool path, unless the tool path is using a M code that is the pre-loaded tool hight and the tool setting script changes or resets that M code with that new height.
I know that each tool can have its own length and deflections settings in some packages, which means you could reset the hight, SOMEHOW in a running cam.

Is this a possible setup with the standard firmware or should i be looking at a different board / firmware combination eventually to be able to do this?

It is theoretically possible with Marlin, but I don’t know of anyone (yet) who has set this up. Getting this up and running has been on my to-do list for some time, but I’ve spent a lot of time away from home (and therefore my machine) over the last several months.

The way most people use their machine is to 1) home the machine, 2) offset to a reference in the stock, and 3) reset the origin with a G92. The problem is that G92 resets the machine origin. Once it is reset, the machine loses its home position. Your machine no longer knows where (0,0,0) is in machine coordinates, so it does not know where to go to make bit changing easy, nor where to go to reset the bit Z after the change. You could home the machine again during a bit change to find the machine origin, but then you would lose the position of the stock.

The way to solve this problem is to use workspaces (G54 - G59.3). The use of workspaces allows you to preserve your machines coordinate system and have another coordinate system for your cutting. Setting your job up to use a workspace is more complicated, and there is a bug in the code (with a workaround). Jamie explores workspaces and the bug in this topic.

Not directly related to your question: when I see this kind of functionality, the company is usually selling some sort of “bit changing mechanism.” Near as I can tell, this mechanism is just a highly accurate switch, but they ask $$ for it. For example, Carbide 3D sells a Bitsetter for their Shapeoko for $120. This functionality could be done with a touch plate, but the user would always have to remember to attach the clip to the bit. I’ve seen on the forum a couple of touch-plate-like solutions, using off-the-shelf buttons like this. I don’t know how repeatable/accrate such solutions are. In theory, a bit-changing solution using machine coordinates would hit the switch at exactly the same place each time it was used and therefore the chance of an accurate measurement is much higher.

My understanding is that GRBL has more of this kind of functionality built-in, so hopefully someone with GRBL experience will chime in on this topic. There are tradeoffs with using GRBL vs. Marlin.

There is one other approach that should work. That is, use the g-codes for saving and restoring position to save the offset to the stock origin (See G60 and G61). I would only explore this approach if there were problems that could not be worked around in the use of workspaces.

@robertbu
thanks, that is super valuable information. I know that my other machine (homebuilt) might have been able do it, as it ran a PC, separate stepper divers and mach3, but i never set it up as my use case didn’t need it. After quite a lot of water under the bridge i think this sort of automation would be super valuable. I was thinking the Touch off plate that Ryan sells could have been stuck down somewhere for the operation I described above.

It would make sense to me to have this touch plate location as machine 0,0,0 and this is found when homing the LR3 and set to be 0,0,0. then the work piece location is set to be (Say) the bottom left of the work piece and that is set to be a workspaces, say for this discussion G54.

So first process is say decking the bit of wood, it is done and the program trams to the spindle to the next location and the tool change script would be called and it “saves” its current location, then trams to 0.0.0 (or X0, Y0 and ZMAX) Then waits for the button press to signal the change of bit, then calls the reset the z of G54. Once that is done the the script then returns to the cutting location and continues to cut.
this is all conceptual for me at the moment, as i dont have the machine working, but again i could see how valuable this would be for every day use and allow a much more hands off of the machine. esp if you have multiple processes.

going off to read that topic you linked too now… thanks!