How to Tram a CNC Spindle / Router


Video link: How to Tram an Avid CNC

When you build a CNC the spindle or router may not be perfectly aligned to the table. You have to tram it, or align it to the axis that it will move along.

This is one of the most accurate ways to do it; you need a dial indicator and a flat surface, such as a granite surface block or a piece of glass.

While I discuss tramming it with my Avid CNC, the process will work with any CNC machine, Phantom CNC, Laguna, Shop Sabre, Camaster Stinger, ShopBot, X-carve, etc.

Tools Used

In the above list, I only own the thickness feeler. I bought my dial indicator from ENCO, which is now MSC. I highly recommend searching MSC for some of these products; they sell a variety of machining tools, and the quality varies from cheap to high quality precision. Almost any dial indicator will due – it needs to read .001″ and have a magnetic base. A 0.0001″ indicator would let you get a little more precision, but probably isn’t necessary for wood working.


  • Shims for the spindle
  • Or use aluminum foil
  • Or aluminum foil tape (available at Home Depot or Lowes in the HVAC section)

I wish I would have bought some shims, and I’m going to order a set for the next time I tram my spindle. I used aluminum foil tape, which worked, but doesn’t allow precisely shimming as well as actual machinist shims.


I cover my process in the video, but the concept is easy: You setup the dial indicator on a fixed position along the spindle. You jog the machine to three corners of the flat surface (the granite plate) and shim the surface up until the dial indicator reads the same value at each of the three points. It is now perfectly aligned with the x/y plane of the machine.

You then move the dial indicator to the spinning part of the spindle, and swing it around, arcing around on the surface plate. You will no longer jog the machine. You shim the spindle and adjust it until it reads the same values when swinging around the surface plate.


Once you have it trammed, you can follow Avid’s Excellent Directions to see how well it is aligned. You basically make cuts along one axis (say the X-axis) to check the tramming in the opposite axis (say the Y-axis), and use a wide bit. If it isn’t trimmed right the cut will have a slight lip on it.

Other Ways

I should also mention the Edge Tech Pro Tram System. It’s essentially two dial indicators that let you read the side values at the same time. I don’t own this tool, but for around $100 it makes the process a lot easier. I find it not very useful to buy a specific tool when I can use a more generic dial indicator.

Tags: ,

Notify of

Inline Feedbacks
View all comments
David J. Gall

Good stuff, Corbin. However, it is not enough to just tram the spindle axis. One first needs to ensure that the Z-axis actually moves vertically, that is, perpendicularly to your carefully levelled X- and Y-axes. On my Avid I found that the Z-axis needed to be adjusted both in the X-Z and Y-Z planes to ensure that the motion was truly vertical. Only after ensuring that the Z-axis motion was truly vertical did I then mount and tram the spindle.

It may seem like overkill to true-up the Z-axis motion but when doing two-sided machining of an object that’s carved from stock that is, say, five inches thick, the top surface of side one becomes the X-Y reference when the workpiece is flipped. A Z-axis runout of .002 inch per inch means that the second side will be out of registration with the first side by .010″ when the piece is flipped, a mismatch that may not be an acceptable level of precision. That out-of-registration can be exacerbated or mitigated by which way the workpiece is flipped, too; not knowing which way the Z-axis is out-of-vertical can result in a cancelling or doubling of the registration error near the high-Z-axis areas of the part, depending on how the part is oriented and the axis about which it is flipped.

Even if these numbers sound like they are within adequate tolerance for your desired level of precision, one cannot know that the machine is “only” out by .002 inch per inch in vertical axis motion unless one takes the time to measure it. My machine was out by .005 inch per inch in the X-Z plane which resulted in an unacceptable .025″ mismatch between top and bottom registration on my two-sided machining operations. And because of the orientation of the misalignment and the axis about which I was flipping my parts, my through-holes were coming out .05″ out-of-round and offset from where they were supposed to come out.

I hope I’ve explained this adequately that you understand it and see the need for this important step in the machine setup. I look forward to a video on the topic soon.

David J. Gall

Well, Corbin, I’m a simple guy. So here’s my simple method:

First, make sure your rails are level and parallel and that your X-axis is level, as you showed in your other video. This sets your imaginary reference plane, which (as you mentioned) many folks choose to set as dead-level so that things like digital levels and plumb-bobs don’t get all confused.

While you’re looking at your Y-axis rails, make sure that they are straight in top-view and that they aren’t twisted. The detriment of rails that are not straight in top-view should be self-evident, but twistedness is often overlooked. If the Y-axis rails are twisted, then, during the travel of the gantry from one end of the machine to the other, this change in twist angle may try to tilt the gantry support legs toward or away from each other which may cause the gantry trucks to bind. Or, if the twist angles of the two rails should happen to coincide, they can cause the gantry to move slightly in the X-direction above the worktable. That will make things frustrating when parts come out slightly skewed despite your repeated efforts at “squaring” your machine.

Okay, now we can start working our way up to the gantry. Be sure (and this is also routinely overlooked!) that your gantry support legs (uprights) are both the same, that is, that they are both exactly vertical (perpendicular) to your Y-axis rails (reference plane), at least in the Y-Z plane. You don’t want them “leaning forward” or “leaning back” and you definitely don’t want one leaning one way and the other leaning the other way–the resulting twist in the gantry will cause the Z-axis to change its tilt as it traverses the gantry from one end to the other. If the gantry support legs can’t be made exactly vertical in the Y-Z plane, plan to shim the gantry’s X-axis beam at the places where it attaches to the gantry legs. We’ll check for the need for this later.

(The gantry support legs can each be skewed inward or outward a bit in the Y-direction and not affect the machine. This may mean that the Y-axis rails are not laying quite flat on the support table, but it does not need to be corrected.)

Jog the X-axis to a position near one end of the gantry, close to one of the Y-axis rails. Next, do whatever you need to do to set a level surface beneath the Z-axis; you could shim a granite tramming block as shown in your tramming video or, as I did, just surface the spoilboard. It doesn’t matter whether the spindle is trammed or not, a surfaced spoilboard will be parallel to your reference plane and your granite block or plate glass will bridge the (all-parallel) high ridges and sit level, also parallel to your reference plane. The granite block (plate glass) becomes your reference surface.

With your Z-axis jogged as low as you can without touching the reference surface, affix a dial indicator to your Z-axis trolley (the part that goes up and down and that carries the spindle mount) so that the dial indicator can take measurements in the Y-direction. Mount the dial indicator below the lowest point on your Z-axis trolley or spindle so that the dial indicator almost touches the reference surface. Set this Z-axis position as Z-zero.

Now you’re ready to measure the Z-axis runout in the Y-Z plane. Place a six-inch machinist’s square on the reference surface so that its base is parallel to the Y-axis rails and its other leg is pointing straight up just in front of the dial indicator. Push the machinist’s square in the Y-direction until it engages the dial indicator a good bit, then zero (or note) the dial indicator reading.

Next, activate the Z-axis upward until the dial indicator reaches the top end of the machinist’s square or the Z-axis reaches the upper limit, whichever is less; or move the Z-axis upward slightly less than the maximum but choose a known, whole number of inches/millimeters if you’re math-challenged like me. Either way, make a note of how much the Z-axis moved.

Now read the dial indicator to see how much it’s reading has changed and in what direction. Divide the dial indicator displacement by the Z-axis displacement to yield your Z-axis runout in inches per inch or millimeters per millimeter or furlongs per fathom–whatever units you prefer. Then multiply this number by the distance between the top and bottom mounts that hold the Z-axis to its trucks to determine the thickness of the shim needed between one or the other of those truck attachments. Insert a shim of the requisite thickness and double-check the Z-axis runout.

Next, duplicate the setup except with the base of the machinist’s square set perpendicular to the Y-axis rails and parallel to the gantry X-axis rail. Again measure the runout of the Z-axis; this time the runout tells you how much the Z-axis is skewed in the X-Z plane, that is, if you’re looking at the gantry so that the X-axis runs from your left to your right, this tells you how much to tilt (rotate) the Z-axis unit so that it’s top moves to the left (counterclockwise) or to the right (clockwise). Some “tramming spindle mounts” admit some fine adjustment here using set-screws or other means, but us regular folks just have to loosen some screws and gently skew things until they settle just right and then tighten them up again–don’t let your shims fall out. After the bolts are tight, measure the Z-axis runout in the X-Z plane again to make sure you got it right.

Situate yourself at the other side of your machine and jog the X-axis to the other end of the gantry. Go all the way back up to paragraph five above and repeat the Z-axis runout measurement in the Y-Z plane to check that the Z-axis runout on this end of the gantry is the same as at the first end of the gantry. This checks for twist of the gantry X-axis rail as mentioned at the end of paragraph three. If you find that the Y-Z plane runout is not zero then you’ll need to shim the X-axis rail where it attaches to the gantry upright on this end to try to correct the twist in the rail.

As with anything precise, going back to double-check all runout measurements afterward is good insurance of your success. You’ll likely find that shimming the X-axis rail on this end of the gantry had the effect of making the other end of the gantry need half as much shim in the opposite direction, since the twisted rail acts to “kick” the gantry trucks into a different pressure configuration on their rollers along the Y-axis rails and those trucks need to supply sufficient equal-and-opposite force to hold some twisting pressure against the previously relaxed X-axis rail.

Sometimes you need to go back and forth several times to get everything lined up. Be sure to double-check the Z-axis runout in the X-Z plane, too. Chasing these adjustments can be tedious and repetitive!

I told you it was simple, didn’t I? Maybe I lied just a little bit. But once these adjustments are complete you’re (finally!) ready to tram your spindle.

Subscribe to new posts:

You'll get an email whenever a I publish a new post to my blog and nothing more. -- Corbin

As an Amazon Associate I earn from qualifying purchases.

(c) 2008-2024 Corbin Dunn

Privacy Policy

Subscribe to RSS feeds for entries.

83 queries. 0.154 seconds.

Log in