Tag Archives: calibration

Calibrating the Printrbot Simple

printrbot calibration fails

As a barebones 3D printer the Printrbot Simple needs a little bit of software love before you can reliably print stuff. You’ve gotten your printer together, the X-Y fishing lines are tight, and it’s plugged in. You’re satistifed that despite your hamfisted build process, the bot won’t catch fire, and it’s time to get it calibrated so you can get started on your adventures in 3D printing.

First things first, download and install Repetier-Host. I’m using Version .56 on OSX, but the clicky points should be pretty much the same no matter what OS you’re on. If you’re a TL;DR type, skip to the starting gCode settings at the end of this post and proceed from there.

Repetier-Host desperately needs a name change. In the hierarchy of 3d printing software names, MakerWare is clearly the hep cat, followed by ReplicatorG. Pronterface sounds like a schoolyard insult, and Repetier-Host is the foreign exchange student who eats his own scabs.

Connect to the printer with the button on the top left of the screen. Assuming you get something cryptic in the log at the bottom like:

5:37:47 AM: FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1

You’re connected and ready to go. First, let’s calibrate the X-axis.

The plan here is to find the difference between how we’re telling the bot to move in software and how it’s actually moving in hardware. Variance in motors, line tension, humidity, gear slippage, localized tachyon concentrations, sunspots, Lindsay Lohan, all these things contribute to unpredictability in the Simple’s motion.

Once we find the difference we’ll write a little bit of simple gCode to correct for it.

The first thing you’ll do is set a default value for the X-axis steps per mm. I’ve been using 114.20, but any number in that neighborhood will work for this step. You’ll likely change this value later, so don’t worry too much about it.

Go to the Print panel and enter the following gCode in the G-Code field (inside the Print Panel tab) and then click Send:

M92 X114.20

Not much will appear to happen, but Repetier-Host has silently told your Printrboard to set the steps per mm of the X-axis motor to 114.20. We’re off and running with the calibration process.

Now move the print head all the way to the left. I do this by disconnecting the power supply to disengage the motors and physically sliding the print bed to the right, as if it were an old-style typewriter carriage.

warningWARNING: It looks like physically moving the X-stepper this way generates a current, which you’ll see lights up the status LED on the Printrboard. I’ve done this dozens of times with no apparent damage to the bot, so I’m assuming there’s a diode in there somewhere protecting it. Manhandle your bot at your own risk.

Once you have the X-axis homed, move the Z-axis up just enough that you can slide a ruler under the print head. I’ve covered my print bed in painters’ tape to help prints adhere, which also makes a handy writing surface. Record the start position of the print head with a mark on the tape.

marking the first line

Remove the ruler and click the X +10 button 5 times, for a sofwtare move of 50mm. Record the position of the head again and measure the distance between the two points, in millimeters. Mine was 46mm in this case, but yours may be different. In the unlikely event that your hardware move already matches your software move, congratulations! You’re done with X and can skip on to calibrating your Y-axis.

If your print bed doesn’t move or moves haltingly, there’s a good chance that you don’t have enough tension in the X line. Tighten it up and try again. The first few times I adjusted the line I was being way too gentle and got unpredicatble movement in the print bed, especially before the motor took up the slack on one end. Really pull hard on the line, like you’re trying to land a walleye.

A note to our international readers: a walleye is a type of North American antelope traditionally hunted with tethered harpoons.

We need a little bit of math to figure out our steps per mm. The Magic Formula is:

(old steps value * software move) / hardware move = new steps value

So plugging in our values we get:

(114.20 * 50) / 46 = new steps value

Which evaluates to 124.13 for my bot. Put your value into the gCode field like this:

M92 X124.13

And hit Send again. Test your X calibration by moving the print head back to the left with the X -10 button and recording the position. Repeat as needed until you’re satisfied that the print head is moving precisely enough for your needs. I’m OK with a little slop in my calibration because I’m trying to have fun with this machine and not get obsessive about print quality. It’s not like I’m printing jet engine parts here.

Repeat this process with the Y-axis, except swap the X for a Y in your gCode. I calculated a Y-value of 114.58 this time.

M92 Y114.58

The process is very similar with the Z-axis. Measure the distance from the top of the leadscrew to the extruder head, Z-move the extruder in software, and measure again. I’ve got one end of the ruler resting right on the plywood, sandwiched between the leadscrew and the head of a hex nut.

UPDATE 6/3/13: Read Bill Owens’ comments below on Z-axis calibration.

measuring the leadscrew

Plug your measurements into the Magic Formula and calculate. Calculate like the WIND!

After you’ve got the motion motors moving the way you think they should be, the next thing to do is calibrate the extruder motor. You need to make sure that the motor’s feeding enough filament to the hot end, but not so much that you spaghettify your print bed during a print.

The process is pretty straightforward: wrap a piece of tape around the filament, 10 centimeters up from the extruder.


Set the extruder temperature to 220°. Repetier-Host won’t let you extrude with a cold hot end, so while you’re waiting set the extrude distance to 10mm. It shouldn’t take more than two or three minutes to go from room temperature to 220°.

If your hot end gets up to around 80° and stalls, check to make sure the power supply is plugged in. USB power will get you to 80° without the power supply, which can be deceptive.

After the extrusion is done, measure the distance to the tape again, and use the Magic Formula one more time.

Once you think you’ve all four motors calibrated, it’s time for a test print. You’ll want something simple and small, so that you can iterate quickly through test prints and really home in on the correct settings for your printer.

I’ve been using a 2x2x0.5cm test lozenge, which you can download right here if you’re not into 3d modelling yourself. The lozenge is nothing fancy, no bevels or geegaws. I keep the gCode for it handy so that I can quickly calibrate after a mishap or hardware adjustment. Do not suck the lozenge.

I’ll be exploring Slic3r and test printing in a subsequent post. For now just accept the defaults, hit Slice with Slic3r, and cross your fingers.

Before I print, I put my calibration setting into the Start gCode dropdown. If you’ve never done this before the dropdown can be a little hard to find:

start gCode

Here are the values that have been working well for me lately. They’ll be decent default settings for a Simple, but more than likely you’ll be tweaking them for your own bot. Note that these are a little different from the values I calculated above– there’s been some adjustments done to my bot since I originally started measuring things.

M92 X112.20 ; calibrate X
M92 Y112.58 ; caibrate Y
M92 Z2387.0719 ; calibrate Z
M92 E450 ; calibrate E

Assuming your print bed is mostly level you should have a printed lozenge in short order. Check the dimensions with a pair of calipers and adjust the print settings repeatedly until your OCD is satisfied.

Once you’re reliably printing lozenges, head on over to The Forge and grab a more complicated model to try out.

Also! Pledge fealty to The Horde to receive the latest Zheng3 models along with assorted other useful giblets like this calibration guide.

printrbot calibration fails