Touch Plate

Found this on YouTube, not to much info but enough that it may not be to tough to implement. Might have to grab one off ebay and try it. :smile: anyone else have anymore info on doing it? Seems most of the operation will be done with the widget in Chilipepper.


I followed this video: and got mine working under UGS. I put the two commands he uses into the macro section of UGS.


Search on this forum for touch plate. I went over the basics of the wiring. I think I attached the analog 5 pin of the arduino to the touchplate, and a ground wire to the bit. Then I opened the Chilipeppr widget, set the thickness of the touchplate, and ran it.

You can do the same thing in UGS, it’s essentially doing a probe command, followed by a tool offset command. On my phone this week so I can’t help with linking the appropriate threads, sorry :smile:


I’ve got one of these touch plates due in the mail tomorrow. I was going to DIY one, but I figured for a $20 bill, it was worth it to get something that was ready to plug ‘n’ play. :slight_smile:


Here’s the link to where I gave a tiny bit more description:

And it will work with one of the sensors from eBay, no problem.

1 Like

id love to have this option for easel. setting the z height to material top is annoying. for me even using a piece of paper theres always some difference in the setting once you start cutting


It’s worth having a widget like the one in ChiliPeppr since a Touch Plate does require a lot of Gcode sequences in order.

This video is a good run through.

A lot of G Code… Are you kidding me. I use USG and have a single line of code that I paste in one of the available macro lines, click the button and bingo… perfect zero. Today I experimented with using the same touch plate to set the x and y axis. Guess what, It works that way too. Just need to adjust the values a little and there you have it. An X, Y, Z zeroing set up and the cost was zilch. I hade a small piece of 1/2" thick aluminum and wired it up with some stuff laying around the shop.

Here is the Gcode that will work in Universal Gcode Sender.

M30;G38.2 Z-.5 F1;G92 Z.5;G0 z.25

This line of code will set you units to inches(M30), move the spindle down a maximum of 1/2 inch looking for contact with the touch plate (G38.2 Z-.5 F1), Set the Z axis height to the thickness of the touch plate (G92 Z.5) when it touches the touch plate, then move the spindle up 1/4 inch(G0 z.25).
To use this you will need to edit the G92 Z.5 so that the Z.5 is the thickness of your particular touch plate. If you have a 1/4 inch thick touch plate then you would use Z.25.

To modify the code for use with the x or y axis simply replace all instances of the letter Z with the letter X or Y. I would also suggest that you change the touch plate thickness to 1/2 the diameter of you bit and delete the move command. Here is an example that works for me:

M30;G38.2 X.5 F1;G92 X.0625

This command line moves the spindle a max of 1/2 inch in the X direction (left) looking for the touch plate. When it finds it the spindle stops and it sets the X axis to .0625 which is 1/2 the diameter of a 1/8 inch bit. For a different size bit, simply replace the .0625 to 1/2 the diameter of the bit you are using… To use it with the Y directions just replace all instances of the letter x with the letter y. When using it for Y zero it moves the spindle towards the front of the machine.

Hope this all made sense.



Thanks @CharleyThomas. I can’t wait to try your code. Do you have to do anything different with the wiring of the touch plate to use it for the X and Y axis?

No change in the wiring. One lead is connected to pin A5 on the arduino and the other to ground.

The easy method to connect to Pin A5 if you don’t have any pins to insert in hole is to just add some solder to a piece of thin wire (tin the wire end) which will make it stiff and then just push it in the hole. Then route you wire out of the enclosure and zip tie it to some of the other wires so that you don’t accidently pull it out of the arduino.

Hope this helps,



once you do this on your z do you still need to lower the bit to the surface of the workpiece before running the gcode file?

@BadWolf, it looks to me like in his code you program the thickness of the touchplate. So when it finds the touch plate, it compensates for the thickness and knows where the surface of your stock is. No additional lowering to the surface required.

ok cool i wasnt sure how exactly it worked. that would make things so much easier

so basically you could set the machine up with the corner of the workpiece (or center) at x0,y0 and then just run the touch plate code to get z0 and then send your machine to xy 0,0 and run the file. does that sound right?

You can run the gcode at any point prior to running your file that you are going to actually cut. Just be sure to insert the thickness of “your” touch plate, not mine, to get the correct result. The gcode finds the touch plate and sets its current position to the distance above z zero that is equivalent to the thickness of your touch plate. the portion of the code that specifies this is the “g92 z.5”.

G92 tells the machine to reset the axis to a specified location that is represented by Z.5 which means the z axis is at .5 inches above z zero. Replace the .5 with the thickness of your touch plate.


Thanks everyone, this informations is exactly what I was looking for.

Only thing I’m struggling with is how I’d ever be able to use a flat plat for setting the X and Y axis. All I can think is that the plate is held against one edge of the job while that particular axis is zeroed - is this correct?

1 Like

Yes, that is the ideal.

This won’t work for every bit you have. V bits are tricky. However, If you have a piece of solid round stock that will fit in you spindle then you could use that to zero your x and y axis, then change to the bit of choice and zero your Z axis.

The only thing you have to be careful of is that you don’t accidently cause the x or y to get messed up when changing the bit. It doesn’t really matter what bit you use to zero your x and y because when you zero those two axis you are actually zeroing the center of the spindle itself.

I use a 1/2 inch thick piece of aluminum that is about 1 inch wide and 1 1/2 inches long. This provides a good flat side to press against the material to zero the x and y to. The 1/2 inch thickness helps to insure that when it is on it’s side that it sits 90 degrees to the table for an accurate zero.

Some of the commercially available zeroing devices simply don’t lend themselves to this. The round ones may not be a good choice to use for this and neither would some of the spring loaded versions. Just go to most any local machine shop, they’ll probably have a small piece just about the perfect size and just give it to you for nothing. That’s what I did.

If it would benefit other people I will make a short video of the x y zero process.


1 Like

That would be great @CharleyThomas . Thank you.

I always liked the design of this touch plate. Triple edge finder It’s a more expensive then just a chunk of aluminum, but it solves a lot of the problems we’ve been talking about in this thread.

That is beautiful, but damn pricey for a hunk of aluminum

1 Like

Assumes your material is square, too.