Tip for squaring your gantry

There have been a number of posts about alignment issues on the (unofficial) Facebook group (which I tend to read more than this forum). One thing I’ve personally noticed with my machine (especially because I am both clumsy and have my XL on cart that allows me to save some space in my tiny garage by storing it vertically) is that the X axis gantry can fairly easily be bumped, causing the Y axis to go out of skew. Because there is only one Y switch (and the CM board does not support a second), it is a good idea to occasionally reset the gantry to a guaranteed-square setting. While the official docs have you do this originally by pulling it all the way forward, I like to avoid the extra back current on the stepper wires (which has been known to damage the CM board) and take advantage of the fact that the machine homes to the back, and use a couple of 1-2-3 blocks to guarantee my machine is square every time I turn it on after it might have been bumped (though two pieces of anything of identical thickness will do).


interesting, so to summarise, power off, 123 insert square at the back, then 123 out, power on?

Not nay saying this at all genuine question, if the machine is out of square a bit anyway from assembly, is this technique only aligning to off square rails, and not fixing the root issue if that makes sense?


1 Like

Yup, pretty much (with 2 squares, since the point is to get the Y carriages lined up). You usually have to pull the gantry forward just a tad (slowly so you don’t generate too much back-current to the board when you spin the steppers). Though I usually only do this when the machine has been off for while and/or I’ve moved/bumped the gantry, since it’s unlikely to move out of square on its own.

And yes, this won’t help anything if your frame is out of square. Fixing that is a different process involving loosening most of the screws and applying clamps diagonally across the frame on whichever diagonal is longer than the other, adjusting tension and measuring diagonals until everything is exactly the same (I have a nice 48"/metric aluminum yardstick from Harbor Freight that worked for my XL, but it’d be too small for an XXL). Then tighten everything back up again.


Brill, Thanks very much, another tip to add to my toolbox, this has prompted me to do two things tonight 1) get coffee and laptop to browse for “things i don’t really need” 2) justify to myself why i need more 123 blocks, order placed !!!

Thanks for the quick feedback



Given that the Shapeoko controller seems to assume that the X rail is normal to the two Y rails at startup and relies on the single homing switch, has anyone running CNCJS or one of the alternate controllers tried installing a second homing switch on the other Y rail and having the controller align the X rail when initialising?

The steppers seem to be able to hold on to the X rail at noticeable angles from normal to the Y rails after you’ve bumped into something, the giveaway frequently being the constant driver noise from the Y steppers as they work against each other to twist the X into whatever missed-step misalignment they are holding on to. This malleability is to be expected given the inherent flex in the V wheel system, seems odd that the controller doesn’t bother to step both axes to home and check with an additional $2 home switch.


That would only work on a controller setup which allows driving the two Y-axis stepper drivers separately — the Carbide Motion doesn’t allow this — this is done on machines which have that option.


Ah, right, yes, you’d need to run two separate stepper drivers, that makes sense.

I might still bodge up a second Y home switch and some LEDs that I could use as a simple, 0.025 jog step squaring test though…

I started thinking about this based on how the Prusa 3d printers get away with not using any switches at all, but the feedback from the steppers themselves. However, I know they’ve done some pretty tricky engineering to make sure that the ends “bump” on a half-step, and I doubt that’s something that could be done with user-tightened belts as long as the ones on some of the shapeoko. It blew my mind the first time I saw it automatically square itself in all 3 axes. Their setup process is certainly something to strive for in some future generation of the CM board (along with recognition of “bumps” for recognizing physical machine boundaries, skipped teeth on the belt, and so forth).


They’re rather good aren’t they?

I believe Prusa get the stepper smarts from Trinamic drivers which are being tried out on the Nomad in this thread;

Does anyone know how repeatable or accurate that is? I agree that the Prusa printers are pretty slick, but a 3D printer doesn’t really need to move square to the bed. If your print was at a 0.5 degree angle from the bed, it wouldn’t matter. When your cutting on a rectangular stock on a mill, it might.

It’s not the tram of the head, but the angle of the gantry as it travels. If your gantry is at a 0.5 degree angle from the bed, you start out at 0.2mm on one side and you’re over 2mm above the bed on the other (worst case scenario for a 240mm bed).

I’m talking the angle as rotated around the Z. If my XY are not parallel to the XY of my print bed, no big deal (as long as X&Y are perpendicular). On the CNC router, that’s a different story. I’m not arguing…just wondering how repeatable the driver current spike detection is.

Also, is this true?..

Yes, but the skew relationship on the prusa is rotated one axis vs the shapeoko. Z is on 2 motors instead of the shapeoko’s Y. So on the Prusa, if Z is out of skew, it will show up as Z being incorrect as the print head moves in the X direction across the print surface. On the shapeoko, if Y is out of skew, it will show Y being incorrect as the cutter moves in the the X direction.

And yes, there have been a few people who have reported blowing out the back-current protection diodes on their CM boards since I started following the Facebook group (got my XL last winter). C3d replaces the board under warranty (because they’re awesome that way) but you’re not supposed to move the stepper motors far/fast when they are hooked up to the board.

1 Like

The Prusa has the mesh leveling to help out too. Anyway, my machine stays square and the method in your initial post is a sound one.
I just find it fascinating that there are no switches…I was baffled.

I don’t want to go way off topic, but I think this is an overrated concern. You’d have to move the thing REALLY fast to generate enough to damage the driver. And once you generate close to 5v, the driver enables and the stepper will hold. I guess if you tried hard enough…


Hah I am like oh no I have moved my gantry around 100 times with the power off…

1 Like

Could be. As I said, there have been a couple people reporting it as an issue that damaged their boards. It’s one of those things that doesn’t “cost” much to not-do, so better safe than sorry.

And yes, the first time I saw a Prusa calibrate itself, my mind was blown (then again, the delta auto-calibration on my own printer’s Duet controller is also a crazy bit of “magic” math). A good friend of mine is an industrial designer with a lot of experience working with 3d printers (as in, designing them) and he explained the steps Prusa had to take to get that no-switch setup to work (something involving making sure the bumps never happen on a “full step”). Blows my mind that they can get that precision on a machine that the user puts together. Some day when I have more space/money, I’ll swap my delta printer for their upcoming extra-big one.

1 Like

Do you have any other reference for this? The Trinamic datasheets don’t mention any such requirements for sensorless homing (see page 90 of the TMC5160A datasheet for example). The Duet page on the subject goes even further:

The stepper drivers only update the stall detection state every 1 or 4 full steps, depending on configuration. So the actual position of the stall is uncertain to either +/- half a full step or +/- 2 full steps. This means that when using stall detection to replace endstop switches, the position defined by the stall is much less accurate than with typical endstop switches.

And it doesn’t make a whole lot of sense to me. Referencing the Trinamic datasheet (emphasis mine):

The StallGuard2 measurement value SG_RESULT is updated with each full step of the motor. This is enough to safely detect a stall, because a stall always means the loss of four full steps.

Not saying that your friend is wrong, just that I’d like to know more :slight_smile:

And as others have indicated, I think sensorless homing is cool and well-suited to 3D-printers but I’m not so sure about its place on a mill or router where accuracy and repeatability in all dimensions is so important.

Once I’ve got StallGuard tuned on my Nomad I might give it a go though, if I haven’t thrown out the steppers and installed servos by then :smiley:

No clue, sorry. It wouldn’t be the first time I misunderstood something he said, though. I generally try to stick to software. :slight_smile:

For the CNC, I’m happy to just stick with what C3d puts out. Not quite crazy enough to get another https://www.duet3d.com/ (which runs my printer) and install it on the shapeoko.

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