Cheap bed leveling (without independent z motors)

  • I am working on a new 3D printer design and I wanted to have it level the bed for me but the only way I have seen this done is to use 3 independent z motors which I see an expensive solution to a small problem. Why add two more z motors and linear rails to go with them just to add about 10mm of travel to two points on the bed? I say two because with 3 point leveling one point can be at a fixed height (but can still tilt around that point) and the other two can be adjusted to match the fixed point and I am intending on using this system with a z probe on the head.

    Just to clarify, I am thinking something like this alt text

    Why not instead create a cantilever bed with only 1 z motor but make the two adjustable points sitting on adjustable shims (with a v grove on top). The shims could be screw driven adjustable parallel like this one.
    alt text

    The shims could be controlled with a cheap motor such as a sg99 servo modded to be continuous (this does remove the position feedback though) or a 28BYJ-48 stepper. These are only about $2 USD each and personally, I think about $10 would be worth having the printer level itself.

    The main issues I see with this idea are:

    • I am not sure how reprap firmware handles independent z motors that are not controlled by a typical bipolar stepper motor. (28BYJ-48 is unipolar)
    • How would it treat the motors since they have vastly different travel distances
    • This Duet wiki post says "If you have two Z motors, the calibration process adjusts the bed tilt along a line between the two leadscrew positions, on the assumption that the tilt at right angles to this will not change." which would not be the case if one of the points is fixed height (but can still rotate).

    Any thoughts? Would this require change to the firmware or could it be done with a macro? Could I use any other pins to power a continuous servo or a 28BYJ-48? Also note that I have not actually used a Duet before but it is the controller board I think I want to use in my design.

  • administrators

    If you are going to put adjusting mechanisms in the bed supports, why not use manual adjustment? If your machine is stable then you should rarely need to make adjustments. The same firmware mechanism that adjusts leadscrews independently can also be used to tell you how much to adjust each screw. See

  • If you're making a rectangular bed, what you've drawn is almost a kinematic mount. The difference is in the positioning of the levelers and the receptacle at the reference leveler. In a rectangular bed used in a printer that uses Cartesian coordinates, arranging the levelers so that a line between two of them is parallel to one of the printer's axes. One of those levelers is used for the reference and the other for the pitch control in that axis. The third leveler is located along an edge of the bed, away from the other two, and adjusts roll around the axis. Leveling is done by adjusting the pitch leveler first, then the roll adjuster because roll adjustments don't affect the pitch.


    The reference screw sits in a hole (right), not a slot, which allows the bed to tilt for leveling adjustments, but does not allow lateral motion. The bed can rotate around that leveler, so the pitch adjuster (left) is set in a slot. That stops rotation in the XY plane around the reference screw, allows tilt/roll for leveling adjustments, and allows thermal expansion. The roll adjuster just touches the flat bottom of the bed plate which allows roll to be adjusted, stabilizes the bed, allows for thermal expansion, and allows tilt for leveling adjustments. The tabs with the reference and pitch adjusters can be located at the edge of the bed (near the top in the picture), opposite the roll adjuster.

    I used such a kinematic bed mount in my printer and it has proven rock solid, needing no adjustments after initial set-up. I used a countersink bit to create the chamfer for the reference hole, and to chamfer the milled slot for the pitch leveler, but there's no reason those features can't be created by making attachments to the plate instead of cutting into it, so a milling machine is not really needed. The 300 mm plate only expands about 0.5 mm when heated, so the slot doesn't have to be long.

  • @dc42 thanks for the suggestion about the assisted bed leveling. I didn't know about that. I guess you might be right about just making it a manual adjustment but I thought that as long as I can make it cheap enough then it would be nice to motorized it. The real question is how stable will it be. Every bed gets unlevel after enough time/use/abuse. I think I will make it manual first and see for myself how stable it can be if I use a lock nut or something.

  • @mrehorstdmd Thanks for the thorough reply. I did see your blog post before I posted this and that was definitely an inspiration to this idea. I was going for a maxwell kinematic coupling and you are using a Kelvin kinematic coupling.

    I'm not sure which is best. Both allow for thermal expansion of the bed but the Kelvin style expands by the countersunk point. The maxwell one expands by a weird point in the middle. But once the bed had reached temp it shouldn't shift much. Just don't change the bed temp mid print.

    The only thing I thought that could be improved in your design is that the area enclosed by the three points is smaller than it could be which could possibly cause the bed to tilt if you print something heavy outside that area.
    alt text

    I think I preffer the bottom arrangement more than the top one. The top one just makes it easier to adjust manually since you can change the pitch and roll but if I use assisted bed leveling it won't matter much.

    If you think it's very stable then maybe I will just make it manual adjustment and only motorized it if I really need to fix it a lot.

  • My guess: the two points are in the middle because the linear guide and belt/trapezoid for z movement are at this positions, so they help keeping the 4 kg in balance. Filament will not produce too much tilting, I think, in respect to the bed weight.

    Thanks for your explanation of the coupling methods, this was new to me.
    The unchanged position of the Maxwell is important when you want to proceed with a paused print with changed heatbed temperature.

  • In my machine, the Z axis linear guides are located at the center of the bed. I didn't want to cantilever the adjusters out to the far edges, and as a result, adjusting roll moves one edge up and the opposite edge down as the bed pivots on the reference and pitch adjustment screws. Adjustment would be easier if the reference and pitch adjusters were located opposite the roll adjuster, but the adjustment only has to be done once. Putting the reference and pitch adjusters right next to the Z axis bearing blocks makes for very stable positioning and it doesn't require readjustment unless I take the machine apart. I use springs to hold the bed plate down on the leveling screws. If a really massive print were printed off center, it's possible for the spring at the roll adjuster to stretch and let the bed tilt, but in the real world that's not going to happen.

    I guess either type of mount would work fine. As far as I can see, both types have a single stable position for the bed at any temperature. I wouldn't expect to be able to resume a print after a power failure if the bed is heated simply because prints are going to come off the bed if it cools while the power is down.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.