Disable auto homing? Use manual homing instead?

Okay so I’m assuming other people with MPCNCs have figured out how to do this. I want the option to move my router or pen or whatever I have mounted to the point I want it to start from and then just have G92 X0 Y0 Z0 and go from there.

So currently none of my gcode has the G28 autohome command anywhere in it, they all begin with the G92 command, BUT the machine insists on autohoming all the axes before it begins the job. Clearly I’m missing something here and googling has been no help. As far as I can tell from scouring over the firmware files, the machine shouldnt home unless a G28 command exists in the job, yet it is doing it anyway.

Any ideas?

If you have dual endstop firmware installed, I think it requires an auto-home before it will allow you to zero the coordinates. Something to do with the soft endstops or something.

El Jeffe corrected me. I was working from overworked, somewhat faulty memory… Sorry!

So if I just went and disabled the endstops in the firmware it should fix it? I wonder if there’s a gcode command that can enable/disable endstops on the fly

No, that is not correct. It should work fine without homing first.

What makes you think the machine insist on autohoming?

What firmware do you have?

The 2 places, that I know, that could supply a G28 at the start of a print are:

  1. slicer startup scripts (it would appear in the g-code file that you run).
  2. Octoprint startup g-script (if you are controlling your MPCNC from Octoprint).

Check these 2 locations if they apply.

Unfortunately neither of those apply. I’ve checked what the PP I’m using in Aspire does and I don’t see anywhere that it generates a G28. There’s none in the output gcode but there is a reference to x_home_position and y and z but I don’t see it actually output anywhere that I can find.

Marlin Bugfix 2.0 and the reason I think it insists on doing it is because it autohomes when I click the begin job button on the LCD even though there is no G28 command in the file.

Are you sure it is homing? Can you paste the first couple dozen lines of gcode here?

Memory fault. For some reason, I conflated the LCD positional display with the ability to function properly. Mea Culpa!

1 Like

No worries.

; Test Pocket
; Safe Z height: 6.350
; Tools: 1 = UT End Mill (3.175 mm)
; Notes: 
; Generated Thursday April 23 2020 11:26 AM

G90
M84 S0
M03 S20000
G21
G00 X0.000 Y0.000 Z0.000
G1 Z6.350 F500
G1 X0.000 Y0.000 F1080.0

; Tool 1: UT End Mill (3.175 mm)
; Path: Pocket 1 C:\Users\Adam\Documents\Test Pocket.gcode
; 
G0 X63.100 Y56.750 Z6.350 F2160.0
G0   Z0.000 F2160.0
G1 X63.900  Z-0.700 F900.0
G1  Y57.220 Z-1.111 F900.0
G1  Y56.750 Z-1.523 F900.0
G1 X63.100  Z-2.222 F900.0
G1 X63.900   F1080.0
G1  Y57.550  F1080.0
G1 X63.100   F1080.0
G1  Y56.750  F1080.0
G1 X61.900 Y55.550  F1080.0
G1 X65.100   F1080.0
G1  Y58.750  F1080.0
G1 X61.900   F1080.0
G1  Y55.550  F1080.0
G1 X60.700 Y54.350  F1080.0
G1 X66.300   F1080.0
G1  Y59.950  F1080.0
G1 X60.700   F1080.0
G1  Y54.350  F1080.0
G1 X59.500 Y53.150  F1080.0
G1 X67.500   F1080.0
G1  Y61.150  F1080.0
G1 X59.500   F1080.0
G1  Y53.150  F1080.0
G1 X58.300 Y51.950  F1080.0
G1 X68.700   F1080.0
G1  Y62.350  F1080.0
G1 X58.300   F1080.0
G1  Y51.950  F1080.0
G1 X57.100 Y50.750  F1080.0
G1 X69.900   F1080.0
G1  Y63.550  F1080.0

Here you go. Also the machine is doing that stupid thing again where it lifts 2-3 inches away from the surface and thinks that’s where it should be cutting at. Trying to remember how I fixed it last time but coming up short.

This gcode does not have a G92 at the top, and the first thing it does is G0 X0 Y0 Z0. So, unless you set the home before running this file, it will return to where it was turned on right away. It will also do that at whatever speed it went last time, which might be too high.

2160 is 36mm/s, which us probably way too fast for Z. So I am guessing right off the bat, it is not getting to Z=0, because it is skipping steps.

There are two doc pages I wrote where I try to cover coordinates and gcode. If you are interested in more, check them out. If you have questions, ask. If something isn’t clear, then there is a good chance other people are suffering my poor explainations.

Coords: Coordinates - V1 Engineering Documentation

Gcode: G-code - V1 Engineering Documentation

This is not a RTFM post. Just pointing these out if you’re interested. There is no requirement for homework. :slight_smile:

1 Like

Ah okay, so if I had it set to do G92 X0 Y0 Z0 instead of G00 X0 Y0 Z0 it would not try and home but rather just set the current position equal to 0?

Definitely going to give your links a read and maybe that explains it there too :slight_smile:

1 Like

Very well written articles! On a side note, while I’m working on other stuff before testing out the homing fix, I have got all my steps/mm set up and are repeatable but when cutting in wood the dimensions are always just a bit undersized. Is this just something I need to compensate for in CAM by adding in a clearance value to make up the difference? Or is there a better way to overcome this?

Be sure to actually measure the size of your cutting bits. I had some that were advertised as 1/8", but when I measured I found they were only 3mm. Makes it tough to fit things into the pockets.

That’s what mallets are for… :hammer:

2 Likes

Yeah I had that same issue with a 1/8 bit measuring 3mm. Interestingly enough when I changed it in the tool library it seems that the undersizing is about the same amount that I decreased the bit diameter by. Haven’t had a chance to retest it yet as I’ve been working out some other bugs

You need to make sure the movement is very good first, which it sounds like you’ve done. Once a 100mm command is actually 100mm, then it is down to the CAM. If you want to measure something precisely, then you need to do a full depth finishing pass. This leaves a very small amount of buffer (0.05mm, or even smaller). Then it comes back at full depth and basically just kisses the work. The first time, there will be flex because there is some load on the bit. The second time through, there will be basically no resistance and it should clean the edge nicely. Making it full depth means it shouldn’t double your machine time, but it really shouldn’t stress out much.

There are some people doing aluminum with a few finishing passes to get high precision.

So you mean set up a toolpath to cut out the total depth then set up a separate toolpath to come back and just be a finishing pass? I.e. do a pocket 1/2 inch deep and then do a separate 1/2 inch DOC profile? Is there a way to have a certain toolpath automatically do a full depth finishing pass after finishing cutting?