Router dipping below z-axis and cutting through project

Hey Everyone! I am brand new to CNC milling and I’m having an issue with either GSender or setting up my g-code in Fusion 360. What happens is when I use the Auto Zero touch plate, it zeroes perfectly. When looking at the project on GSender, it shows that the item is below the z-axis, but that is because I put my stock point on the top side of the stock in Fusion 360. When I do a Test Run, it will show the correct tool path, however, when I click the button to actually run the project, the z-axis plunges and starts traveling to the start point, but below the z-axis. This cuts lines completely through my stock. What am I missing here? I even set up the Safe Height to 20mm, but it still plunges, instead of raises, when traveling to the start point. Again, I’m using Fusion 360 and G-Sender with the AutoZero touch plate.

Any help is appreciated!

@pawiseman1 Welcome to the group. I’ve moved your topic to the Fusion360 category. I believe that this has come up before wrt fusion360 users, so it may get more traction here.

@pawiseman1 it sounds like the Z zero in Fusion is not the same as the Z zero set in gSender.

In fusion, when you set up your stock, you can move the origin to a point on your stock box - this needs to be identical to the zero point you are probing for in gSender.

That means you set the Z zero either:

  • to the top of the stock in Fusion
  • by probing Z at the top of the stock in gSender


  • to the bottom of the stock in Fusion
  • by probing Z at the waste board in gSender

Personally I prefer the second combination because it saves my wasteboard.

Let us know if that helps!

Can you share your gcode?

First of all, thanks for the replies! I’m going to include some photos and code to show exactly what I’m doing here. @elbarsal I believe I am setting up the stock point and the auto-zero to the correct position. I’m including pictures to show you exactly what I’m doing, but with my limited knowledge…it may make sense to be, but be incorrect. And thanks for the tip about the wasteboard! @NeilFerreri I’m including the first few lines of the g-code below. It always happens at the very beginning of the process. When I hit my Oh No! button, it always stops within the first 30-ish lines of code…so it has to be happening there, right? So I’ve copied my code a bit beyond 30 lines.

This particular project I’m sharing is for a control cavity recess for an electric guitar, so I can fit a control cavity cover in flush with the back of the guitar. This code is for 2D adaptive clearing (as everything I’m working on right now is a template on 1/4" plywood, but I do measure the thickness of the plywood and enter that for my stock thickness instead of defaulting to 12.7mm…also, I do everything in millimeters). Most of the templates I’m working on (that have this same z-axis issues) are 2D Contour programs. So, to be succinct, I have this exact same problem with 2D Adaptive Clearing and 2D Contour.

Thanks again!


(Control Cavity Cover Recess Template G Code)
(T4 D=6.25 CR=0 - ZMIN=-12.7 - flat end mill)
G90 G94
(When using Fusion 360 for Personal Use, the feedrate of)
(rapid moves is reduced to match the feedrate of cutting)
(moves, which can increase machining time. Unrestricted rapid)
(moves are available with a Fusion 360 Subscription.)
G28 G91 Z0

(2D Adaptive2)
S5000 M3
G17 G90 G94
G0 X139.875 Y76.977
G1 Z2.5 F1000
G3 X138.25 Y73.609 Z1.791 I1.364 J-2.734 F333.3
X141.089 Y71.2 Z1.081 I2.977 J0.63
X144.123 Y73.332 Z0.372 I0.138 J3.028
X142.827 Y76.791 Z-0.338 I-2.884 J0.891
X139.169 Y76.408 Z-1.047 I-1.581 J-2.557
X138.622 Y72.786 Z-1.756 I2.068 J-2.165
X141.976 Y71.352 Z-2.466 I2.604 J1.451
X144.198 Y74.225 Z-3.175 I-0.747 J2.874
X138.26 Y74.225 I-2.969 J0
X144.198 Y74.225 I2.969 J0
G2 X144.496 Y75.394 I3.074 J-0.16 F1000
G3 X143.342 Y78.04 I-2.506 J0.482
X138.668 Y78.138 I-2.406 J-3.235
X143.703 Y70.192 I2.53 J-3.965
X145.764 Y72.652 I-2.545 J4.226
X144.756 Y79.309 I-4.613 J2.706
X135.936 Y78.253 I-3.914 J-4.671
X134.696 Y72.697 I5.015 J-4.035
X146.437 Y69.966 I6.54 J1.511
X147.445 Y79.225 I-5.707 J5.306
X136.254 Y81.341 I-6.622 J-4.371
X133.465 Y70.107 I4.772 J-7.148
X147.37 Y67.9 I7.778 J4.092
X147.837 Y82.092 I-6.518 J7.318
X132.894 Y81.2 I-7.055 J-7.427
G1 X132.588 Y80.865
X132.315 Y80.502
X132.058 Y80.128
G3 X147.326 Y65.117 I9.161 J-5.953
X150.004 Y82.96 I-6.496 J10.097
X132.154 Y83.615 I-9.238 J-8.216
X136.436 Y61.969 I8.958 J-9.474
X140.399 Y61.074 I4.599 J11.141
X152.945 Y67.794 I0.756 J13.658
X141.915 Y89.277 I-11.942 J7.442
X135.678 Y88.415 I-1.25 J-13.951
X131.611 Y62.192 I5.374 J-14.26
X148.65 Y60.687 I9.64 J11.94
X138.656 Y91.457 I-7.739 J14.494
X134.283 Y90.313 I1.667 J-15.309
X131.586 Y59.398 I6.782 J-16.167
X143.258 Y56.632 I9.597 J14.49
X159.559 Y76.709 I-2.288 J18.513
X146.906 Y92.894 I-18.495 J-1.42
X122.868 Y81.997 I-6.152 J-18.392
X125.499 Y61.866 I18.147 J-7.865
X153.133 Y58.084 I15.77 J12.379
X161.94 Y74.704 I-12.17 J17.092
X139.965 Y96.191 I-21.002 J0.501
X125.688 Y90.113 I0.708 J-21.467
X138.754 Y52.035 I15.46 J-15.976
X160.231 Y62.092 I2.501 J22.621
X161.525 Y86.216 I-19.197 J13.125
X131.888 Y96.832 I-20.733 J-11.202
X120.031 Y86.716 I8.751 J-22.264
X139.698 Y49.595 I21.145 J-12.568

I started the photos here, but as a new user, I can only upload 1 at a time…so I just made a Google Slides presentation with the images I promised in the earlier post.

You can view the images here: Project Image in Fusion 360 - Google Slides

The last photo is my actual machine, with the actual stock I was using to run the program I shared the g-code for in my earlier post. You can see the machine has plunged into my stock, my spoil board, and potentially my cnc tabletop. You can also see the remnants of a previous project that cut into the spoil board while traveling to its start point in one of my 2D Contour projects.

I hope all this helps you guys to be able to see what I may be missing! Thank you again for your willingness to help!

Are you intentionally using G56? When you set your Z-zero in gSender, are you doing that in the G56 WCS?

I think so? I know where it’s located on the screen and I know I’ve clicked on it to see the options, but I’ve never toggled it. Is the G56 because I have the WCS offset in Fusion 360 set to 3? When I get home tonight, I’ll work on uploading a screenshot of gSender with this program loaded.

If so, there’s no particular reason I’m using it…I just followed along with a guy on YouTube to design the 3D model of the whole guitar…and that’s how he set up his projects. I honestly had no clue what I was doing…ha ha. Just doing something to get my feet wet and learn CNC and 3D modeling.

Thanks again!

Yes. By default, you’re using g54. So when you set your Z-zero, you’re setting it for an entirely different plane. Then you switch to G56 when you start cutting and who knows where zero is there.
Anyway, if you’re just doing that one cut and you are resetting your zeroes for each job, just use WCS 1 (G54)

Thank you @NeilFerreri ! I’ll give that a try and post the results soon!

1 Like

So here are my results:

I edited the program where the only thing I changed was the WCS Offset to 1 in Fusion 360. I was on the G54 (P1) plane in gSender, however, the router still plunges. I used the AutoZero touchplate first, then I just tested setting all the zeroes manually and got the same result. At least I know that there is not an issue with my AutoZero touchplate! I am including the first 30, or so, lines of update code for this project.

I am including a video that shows the program running with the Oh No! Button on…that way you can see the path it’s trying to travel without the noise and without destroying my table and spoilboard. You can see it dip…and this happens in the first 15-30 lines of code. I made sure to get a video of everything on my screen so you can see my settings, and then a pan over to my router so you can see how it’s trying to plunge into the spoilboard/table. I was wondering if there was a mm/in error, but when it travels to its start point, it works perfectly…it’s just traveling below the z-axis instead of above it. So I don’t think there’s an error with differentiating between millimeters and inches (I use mm on my projects).

Link to video:

(Contorl Cover Recess)
(T4 D=6.25 CR=0 - ZMIN=-12.22 - flat end mill)
G90 G94
(When using Fusion 360 for Personal Use, the feedrate of)
(rapid moves is reduced to match the feedrate of cutting)
(moves, which can increase machining time. Unrestricted rapid)
(moves are available with a Fusion 360 Subscription.)
G28 G91 Z0

(2D Adaptive3)
S5000 M3
G17 G90 G94
G0 X138.469 Y75.551
G1 Z2.5 F1000
G3 X140.104 Y71.368 Z1.615 I2.82 J-1.309 F333.3
X144.192 Y73.174 Z0.73 I1.179 J2.86
X142.219 Y77.16 Z-0.155 I-2.894 J1.049
X138.343 Y75.027 Z-1.04 I-0.917 J-2.922
X140.63 Y71.266 Z-1.925 I2.945 J-0.785
X144.27 Y73.702 Z-2.81 I0.654 J2.961
X141.691 Y77.215 Z-3.695 I-2.971 J0.522
X138.311 Y74.5 Z-4.58 I-0.39 J-2.976
X141.156 Y71.258 Z-5.465 I2.974 J-0.259
X144.255 Y74.225 Z-6.35 I0.129 J2.967
X138.315 Y74.225 I-2.97 J0
X144.255 Y74.225 I2.97 J0
G2 X144.553 Y75.393 I3.072 J-0.16 F1000
G3 X143.399 Y78.041 I-2.507 J0.483
X138.723 Y78.14 I-2.408 J-3.236
X143.759 Y70.191 I2.53 J-3.967
X145.821 Y72.65 I-2.544 J4.226
X144.814 Y79.309 I-4.614 J2.708
X135.993 Y78.258 I-3.916 J-4.671
X134.749 Y72.702 I5.014 J-4.04
X146.489 Y69.957 I6.543 J1.505
X147.735 Y78.822 I-5.737 J5.327
X137.097 Y81.813 I-6.836 J-3.9
X133.513 Y70.122 I3.981 J-7.616
X147.413 Y67.886 I7.785 J4.074
X147.91 Y82.078 I-6.505 J7.332
X132.965 Y81.22 I-7.072 J-7.411
G1 X132.658 Y80.885

Do you have a G28 set?
If not, replace this line
G28 G91 Z0
G53 G0 Z-5

What post processor are you using?

G28 G91 Z0 // This line moves the Z-axis to wherever you have set G28 (I’m guessing you have not set it intentionally)
The intent is that G28 will be at some safe height ABOVE your work.

G53 G0 Z-5 // This line will lift, rapidly, your Z axis to 5 units (mm in your case) below your limit switch…you could change that 5 to whatever you want

I am using Grbl.

If it helps, I have the LongMill mk2 30x30 machine.

To be honest, I don’t know how to set a G28…so I couldn’t say with any degree of certainty that I have one set. How would I be able to tell?

Thank you again!!

G28 is usually used as a parking location. To set it, you just jog wherever you want it and send G28.1

I recommend avoiding it in your post processor though. Depending on the post processor, it’s commonly an option when you post.

Sorry I didn’t point this out earlier… That G56 just jumped out at me

Oh! I just thought of something else. My machine does not limit switches. Would the G53 code you suggested earlier still work?

*does not have limit switches

That changes things. Just delete the g28 line and make sure you’re Z is clear of any clamps and stuff. It’s tough to do something like a guitar without switches. The limit switches are the only absolute reference point on the machine.
You definitely don’t want to use G28 or G53.

Thank you!

I will give this a test run tomorrow afternoon (as work allows) and post the results later tomorrow evening.

1 Like

Deleting the G28 lines at the beginning and end of my gCode worked perfectly. This solved my problem! Thank you @NeilFerreri , you are a life saver!

To anyone reading this thread that is having the same issues I had, and you are new to this, let me just share with you the way @NeilFerreri suggested I solve this problem…

When you are done creating your cuts, and you are happy with them in Fusion 360, go ahead and click the button to generate your code. When you are on the screen to post the code, look on the left hand side, under the name of the project, and at the bottom you’ll see a check box that says ‘Open NC file in Editor’. Make sure that box is checked and when the code is posted, you’ll get a text box with your code in it. In my case there was a line at the top that reads: G28 G91 Z0 …delete that entire line.

Scroll down to the bottom of your code and delete the G28 code line there, too. In my case it read:
G28 G91 Z0
G28 G91 X0 Y0

Delete both of the G28 lines, or it will continue to send your router through your project at the very end of the project.

To be clear, the reason this is happening, and @NeilFerreri , please correct me if I’m wrong, is because I do not have limit switches installed on my machine. If I had them, I assume the G28 code would be fine to leave in. Again, if you do not have limit switches installed on your machine…DELETE THE G28 LINES IN YOUR GCODE and your project should work just fine!

@pawiseman1 I’m glad that worked, but this should just be taken care of with your post processor. What post processor are you using? Most I’ve seen have G28 as an optional checkbox. You could modify the post processor to leave that unchecked by default.