Advice - Milling to the limits

I guess this is something that other Shapeoko owners may have encounter or will encounter in the future but I have not seen information on the subject.

I have a Shapeoko XL and I want to mill a sign that is 15.85in (finished). This is just under the limits of the XL (16in). I don’t want to hit the limits of the Shapeoko and ruin the project and would prefer not to do tiling. I will do my milling using a 1/8in endmill. I know that the milling area includes the space at the front. I’m planning to support the front with temporary support.

Is this possible?
What is the best way to ensure that I place the workpiece at the right place if I have a 16in?
Where is the best place to have the origin center or left front?
Anything else I should know?

Have you actually jogged to your limits to see what they truly are? The actual machine-coordinates limits of Y travel, in millimeters, I have set on my Shapeoko XL are:

  • 0mm – Machine Home
  • -430mm – Forward-most Y

I’m not at home to check whether Carbide Motion allows me to reach the full extent (I know my X limit is greater than CM will go), but -430mm is what I have written down in my notes as a rounded-down safely reachable limit. With that being my actual limit and 15.85in being just a hair under 403mm, that’s a good inch leftover to play with.

If you do end up in that shadowy edge where you’re beyond Carbide Motion’s hard-coded limits but comfortably within your machine’s actual limits, you can always use another sender. If you do, my strong suggestion is to turn on GRBL’s soft limits (see “Appendix: Setting Soft Limits”, below). Carbide 3D’s advice is to leave soft limits off so they cannot possibly cause any issues, which is logical enough since travel limits are hard-coded into Carbide Motion. If you’re going to use any other sender, you get more range, but you don’t have the crutch of built-in hard-coded limits protecting you from dumb mistakes, so turning on GRBL’s soft limits makes a lot of sense (unless you assume perfection, of course). If you enable soft limits, you’ll know they exist and that you’ve set them, so there’s no danger of mysterious behavior (and you can always turn them off if you’re debugging something).

Locating the stock on the bed would be pretty straightforward. I’d collet up a nice little pointy bit, then jog Y to just off your Y limit switch. Jog down to the wasteboard, then make several pencil marks at various points X and connect them with a straight edge. Or make it easier and more official: turn on the router, jog just a tiny bit below the surface, and jog across X to engrave a tiny little line onto the wasteboard. Use your line (however made) as a reference to be sure the back/+Y edge of your stock is within the limit. (For the front/-Y edge, just jog over it to verify.)

Note that if you’re going to be making outside profile cuts, you may want to move your limit reference line forward half the diameter of your mill. I’d likely just scribe the line at Y-5mm in machine coordinates, as that’s a nice round number that would have the machine just off the Y limit switch when cutting an outside profile with a 1/4"/6.35mm endmill and the stock butted up to the reference line.

If you’re going to probe XY, having the stock origin set to left front adds convenience (and can also show if you try to work beyond your forward/-Y limit). On the other hand, if you are right at the Y-travel limit, you may not have any surplus travel for the probe shoulder, tool width, and probing cycle – you definitely don’t want to crash during the probing cycle and skip steps. If you’re not going to probe XY (due to lack of opportunity or simple choice), I’d definitely go with stock center for this. I’d use a straight edge corner-to-corner to make a couple intersecting lines near the center. (A piece of blue tape for the pencil marks works if it’s stock that I don’t want to mark directly.) Use any bit with a nice pointy tip to manually jog to where X marks your spot, zero the axes, then change to your actual tool to pick up your Z.

That’s pretty much all I can think of. It’s not hard to work near the limits, but it certainly can be intimidating. To ease my mind on jobs I don’t want to mess up, I’ll sometimes jog the extents of the job before I run it (and I get the extents from previewing the G-code after it’s generated, not from whatever design program I’m using).

Appendix: Setting Soft Limits

If you want soft limits, usually because you’re going to be working outside CM’s built-in hard-coded limits and you cringe thinking about belts skipping while your machine tries to reach other dimensions, it’s quite easy.

  1. Home.
  2. Note your current GRBL settings:
    • Soft limits, boolean: $20=___ (1: on, 0: off)
    • X Max travel (mm): $130=___
    • Y Max travel (mm): $131=___
    • Z Max travel (mm): $132=___
  3. If soft limits are currently enabled, disable them so you can jog without limits:
    • $20=0
  4. Collect your values:
    • Jog an axis to the far end and stop before you actually crash.
    • Note the value, in millimeters, in machine coordinates (e.g. -834.000mm).
    • Repeat for any additional axes, as desired.
  5. Update any new max travel values (fill in the blank with your millimeter values):
    • For X: $130=___
    • For Y: $131=___
    • For Z: $132=___
  6. Turn soft limits on:
    • $20=1
    • Your “X/Y/Z Max travel” settings ($130-132) will only be observed when soft limits are on. They have no effect on anything when soft limits are disabled.

Note: If you’re doing physical changes to your machine and want to check your limit switches, you’ll likely want to unlock without homing and then carefully jog into the limit switches. You’ll need to disable soft limits temporarily to jog +X/+Y/+Z from your unlock point since it lacks a home reference. This is the type of exceptional circumstance where not knowing about soft limits could be a headache, but since you’ve set them yourself, you can just type $20=0 and think of happy belts.


Thank you for the thorough reply Nathaniel, I was leaning in the same direction but did not want to play with resetting limits. I’m still using CC but I’m considering changing in the not too distant future. I will eventually have to deep dive into GCode because at the moment I can read most of the code, I’m not confident enough to mess with settings. I will reference your reply for future investigation.

I had problems when I made my first wasteboard, some of the holes on the edge ended oval instead of round so I learned to be careful milling near the edges. It is the first time however that I try milling on the south side of the southwest corner defined in CC.

So if I understand you, if I were to set the edge to very close to the front (south) limits of Y (e few mm), and I have a bit of of room around my workpiece, the job should run because my max size in Y is 15.35in plus the .125in bit is within the 16 in working envelope.

I will check the limits as you indicated to confirm and I think I will create a file of the contour and try to aircut it before I proceed.

Hi, I think the oval at the edge would be a different issue and would have to do with the stepper motors’ step size being slightly unequal, meaning if a step in the Y direction equals ‘1.000’ then a step in the X direction would equal ‘1.001’ or ‘0.999’ or something else, but not ‘1.000’ (like Y). This situation would make the step size mismatch most noticeable the further you get from origin (0,0). You would need to redefine the values for the grbl, namely $100 or $101, here is the list from the Shapeoko 3 wiki (I don’t know if these values are the same for version 1.x, I am still on 0.9):

I hope this is helpful (and accurate!)…

Thank you I was able to mill the part no problem… almost. Except for, on the first try, tripping a breaker, having a piece of cutout detach and get stuck between the dust shoe and the board, messing my dust shoe, moving my work piece and skipping steps then losing communications to the Shapeoko. That gave me a practice run!

Second time was a charm, made sure everything was secure, that my compressor did not start while I was running the Shapeoko then I was able to mill the piece without any incident.

This is the procedure I followed.

First I moved the Y axis all the way to the front and zeroed. I move the Y all the way back and looked at the position on Carbide Motion. I think it was 488mm or about 16.75in so I knew it could travel this distance before hitting the limits. I placed my work piece in line with Y0 then moved the carriage back 5mm and set my zero there. I created a test GCode file with the perimeter of my design and air ran the Shapeoko. I did not hit any limits or see any issues. Easy peasy, I just had to read the advice and come up with a procedure that would work for me so no writing of GCode but I appreciated the advice and keep the info for reference.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.