Z Offset?

I’ve gotten some cutting under my belt now, so I’m working on the smaller features I’d like to get working.

I have a small steel plate hooked up to one end of the Z endstop pins, and the other on an alligator clip on the bit. I can Home Z, and it will move down, touch the place, and then back up and touch again. That’s great, but the Zero is then at a small height above the workpiece, due to the thickness of the steel (.65mm)

I can’t figure out how/where to put that offset so that homing always takes that into account? I keep reading that it’s in the LCD screen’s Control>Motion menu, but I’ve been through that (and various other) menus, and can’t find anything that says anything about Z Offset.

Is there a way I should be doing this through ESTLCam or Repetier? Is there a way through Marlin that I’m missing?

Thanks

 

Probing section

https://www.v1engineering.com/milling-basics/

Make changes to you machine so that it homes at the top of the Z, it is safer and will make your life a lot easier.

this guide section has 3 small issues:

  1. It doesn’t remind a thing that you have to properly set work offset point in Estlcam and in this case it will be real home point. Then you have to mount material on the table with desired offset and when you need to start at some point with a precision it’s not easy.

  2. I don’t think that using M84 is required on tool change. Moreover with heavy spindle it may unexpectedly slide down on the material.

  3. On a pause you may use M0 <Show this text> to inform user what to do.

Well… I don’t think you need to set the origin in Estlcam most of the time. I use the default origin most of the time. I home my machine in the lower left corner so I can make sure it is set square. Then I move the bit into position above the work piece (anywhere on the table) where I know Estlcam had set the origin. Then I start the job. the G92 in the startup makes the machine use that new position as if it was home.

When I make a touch plate I will have to modify the G92 to take into account the thickness of the touch plate. All of which is covered in the write up referenced.

 

I agree with #3. I was actually going to do that on my own but it is a good suggestion. I was going to add messages there to make sure all is ready before the cut begins. Maybe Spindle turned on? Or bit installed, vacuum on, or just a “ready to cut?”. Off the top of my head though I though it was m117 to display a message. I don’t remember. I will look it up later. Will it display a message and then pause? Or will the message be replaced with the words “paused”?

that’s ok (i do it similar way). until you will need to milling with 2 or more bits

it probably obvious, but i just remind that you will have to put the plate on the material, not on the table. if it’s 2 or more pass milling with different tools and after first pass the detail hasn’t flat top it could be a problem

It used to be common practice to use “touch off blocks” on NC milling machines or you set your changed tool to an exact stick out.

Does anyone know if the marlin firmware has a similar feature? A change tool feature? It could move the tool to specific location then it could use a touch plate to reset the Z offset? Or is this a manual process? I see Estlcam can allow a specific g-code script on a tool change. I supposed We could use that to build our own.

Check M851 - it sets the z-probe offset.

As far as I know, Marlin is quite specialized for 3D printing, and lacks many “CNC” features, however, I think it incorporates tool switching/tool offsets. But I dn’t know how exactly it works/how it can be adapted to CNC workflows.

Thank you “thesfreader”.

A change of mind set is required, 3D printing is additive manufacturing, milling/routing is subtractive manufacturing.
This is why I said have the Z home at the top, it is the norm for a CNC milling M/c.

There is a simpler way that I have used, a gcode program for each tool, provided that you don’t turn the M/c off between tool changes.

If anyone remembers the pendant that was posted, I have modified this, I have a button that sends G28 to the active axis, (it defaults to Z on start)
a button that sends G92 XYZ
a button that sends X Y to -50, to change the tool
and a Button that returns X Y to 0,0
and the jog buttons of course.

I guess that most elegant solution is to enable CNC_COORDINATE_SYSTEMS macro in the Marlin and use separate workspaces with help of G54 and G55.

So in theory it may looks like:

Preparation step:

  1. Insert tool 1.
  2. Home XY, home Z with Z-probe. (this can be done by custom menu item),
  3. With help of LCD items “Move X\Y\Z” move to start point (zero of work area)

Start gcode:
3. G55 ; Switch to work coordinate system.
4. G92.0 X0 Y0 Z0 ; Reset coordinates. Current XYZ became “position_shift” for G55 workspace
5. G0 Z20 F500 ; move Z to safe height
6. ; … milling code

Tool switch gcode:
7. M5 ; turn off spindle
8. G54 ; Switch to original (native) coordinate system.
9. ; … perform tool change N
10. ; … perform again homing and z-probing.
11. G55 ; Switch to work coordinate system.
12. G0 Z20 F500 ; move Z to safe height
13. M3 S255 ; turn on spindle CW
14. ; continue milling

End gcode:

15. M5 ; turn off spindle
16. G0 Z20 F500 ; move Z to safe height
17. G54 ; Switch to original (native) coordinate system.
18. G28 X Y ; Parking: Home X Y
19. G0 Z2 F500 ; Parking: Move Z to minimal height. If spindle will slide down it will be safe
20. G84 4 Turn off steppers

1 Like

Hey all, I’m sorry I’ve been away and then got sick, and am only coming back to this thread now. I’m still pretty new to CNC and not sure I’m following all of this, so please bear with me.

I’ve been through the Z-Probing section Ryan linked to. I want to make sure I understand the intended workflow here.

I put some board on my table and clamp it down where it won’t be cut.
The cutter is wherever on the table.
I attach my probe wires and place the probe over my board.
Running the starting code on the linked page:
(G92) The current cutter position (wherever), is marked as 0,0,0
(G00) The head is raised 5mm
(G28) It’s zeroed in X, then in Y, and then in Z until it touches the probe. (This is overriding the earlier G92 that zeroed it wherever it was, yes? This assumes that my probe, and therefor my workpiece is at/under 0,0,0? What if the part I’m cutting is clamped in the middle of the table?)
(G92) The Z is offset to account for the probe.
(G00) the head is raised, so I can remove the probe.
(M00) the machine waits for me to remove the probe and press the button to say it’s ok.
(I’m assuming that Guffy’s comment on setting the work offset is the same as my question on the G28 step above?)

My current process (pre-probe) has been to move the cutter over my piece, manually lower z until it looks like it’s touching, then disconnect and reconnect repetier so that Z is zeroed. Then Home X and Y to my endstops. Then I’m zeroed out to the top of my work piece.

But precise positioning on the table is still a problem. If I’m cutting a part out of a piece of plywood, where exactly that part is in the plywood doesn’t matter much. But if I’m hollowing out a small blank, and want to ensure 1/4" is left on each side, I need to ensure that my part is placed fairly precisely. I’ve cut a grid into my spoilboard, and can use that to position the part, and then offset my part in ESTLCAM to place it accordingly, but it still seems imprecise.

Aaryn, it sounds like you’re doing something similar, but I don’t understand the bit about moving the bit anywhere over the part, and starting there. How does that help place your part with precision?

You’re saying to make Z’s Zero at the top of travel? i.e. put a limit switch on the upper end of Z’s movement, yes? I can see how that would mean that I wouldn’t need a touch probe, but then I would still need to know the precise distance from the tip of my tool to the top of my part, or at least to my table, right? How is that easier? That seems like a much harder measurement to get. It’d be one thing if this were a proper CNC mill with a set of tool holders that each had their tool offsets measured and entered. But I’m working with a Dewalt 660, most of my bits are different lengths, and even if they were the same, there’s no way to guarantee I insert them to the same spot each time?

What am I missing?

Thanks all.

Yes I have a s/w at the top of the Z, the Z goes up when I send G28.
Jog the Z down to touch on a piece of paper (0.1mm), send G92 Z, a fag paper (0.02mm) was one of the favorites in the milling shop.
It can be used basically like a “proper CNC” with some limitations.
Maybe it is horses for courses, I find it easier, it’s a machine, make it do your bidding.

Bill.

There is a washer between the mounting plate and the bearing

ZLimit.jpg

Nick you have two very different questions (setting Z=zero and work piece positioning) in your last post and you have asked all sorts of hard questions. We should work through one completely first.

Z zero is the easiest topic.

Do you have Dual endstop firmware running?

 

I do not. I only have a single endstop on each axis at the moment. I have the switches to do dual, but haven’t set that up yet.

G28 Z

That will move your Z axis, if you have the metal in place and the clip on your endmill that will Zero the Z axis to the top of your metal plate.

Yes. I understand that I can use a probe to home my Z to the top of a metal plate. I have that and it works. The initial question was about how to properly account for the thickness of that probe (the metal plate).

The follow ups were about how best to home my axes, if the part I want to reference for my Z, is not at 0 0 0.

This seems to be what I was asking about originally.
What I don’t understand is how to apply this.

When I run a tool change, I could put this into the tool change script from ESTLCam after G28 Z, but what about the standard Z Homing from Repetier. Is the script for a given button in Repetier accessible somewhere? Or is there some way to apply M851 to Marlin itself, such that I wouldn’t need to call it from any script?

After you G28 Z, you will be at the top of the metal plate. The machine will be at z=0, to account for the thickness of the plate you tell the machine it is at the correct position.

G92 Z0.5

This says “machine you are at z=0.5mm above the origin”