Stepper Calibration: Tune Your VREF, Steps for Perfect Prints!

Calibrating Your VREF and Steppers


You Got a 3D Printer, Now What?

You got your printer unboxed and put together.  One of the very first things you should do with a new 3D printer is to calibrate your extruder and X Y Z steppers.  3D printers are precise machines that rely on precise movements, that’s why stepper calibration is important.  An un-calibrated 3D printer can cause all kinds of issues.  This can be anything from under extrusion, over extrusion, parts that don’t fit properly, clogged nozzles, etc.  We are going to go over on how to calibrate your VREF and X Y Z Steppers. If you don’t know what this means, don’t worry, we will walk through this together. There are also a couple of tools that you will need for this.  Next, you will need a way to send terminal commands (G Code).

Items Needed

What is VREF?

VREF is merely the voltage regulated from your stepper driver to your stepper motor.  Properly tuned VREF is the key to accurate stepper calibration.  If your VREF is too low, your stepper will not have enough torque and this will cause skipped steps. These can be seen by having layer shifts in your prints. If your VREF is too high, your motors can overheat. This shortens the stepper motor’s life and can cause your motors to fail.

Figuring Out Your VREF

The maximum settable stepper current for my stepper motor (NEMA 17) is 2.0A, but you will need to verify what the maximum settable stepper current is for your stepper motor, as this will vary depending on your type of stepper motor. I will be using an A4988 stepper driver. The A4988 has a max output of 2.5A RMS. Seeing the algorithm below, we see our VREF should be set at .72.

   Stepper Driver Model         Max A RMS
              A4988              2.5A
              TMX2xxx              1.2A
              DRV8825              2.0A

Example for A4988
Stepper Current = VREF × Max RMS
Finding VREF: Stepper Current/Max RMS = VREG
VREF POT: 2.0=0.8 × 2.5

Calibrating Your VREF

Now that we have our VREF setting.  We need to grab out Multi-Meter and our Screw Driver. Set your Multi-Meter to DC.  If your Multi-Meter does not support auto ranging, then you will set it to .10. Ground the Multimeter to your power supply and CAREFULLY using the hot lead, measure the DC voltage off your VREF pot.  Make sure your probe does not touch anything else while testing the DC voltage, or you may short out the Stepper Driver, the board, or may even cause injury.

Disclaimer: This is to be done at your own risk. Inov3D do not assume any responsibility for any or all damages that may occur to yourself and/or your property.

First, disconnect your stepper motors.  You can do this from the board or from the motors themselves.  Then, we need to measure what the current VREF is for our stepper drivers, as this will vary. Mine was set at 0.543VDC, this is way too low.  Next, VERY CAREFULLY make a very small turn (taking note not to touch anything else, except the Stepper Driver POT) and remeasure.  Your pot will turn clockwise or counterclockwise to raise and lower your VREF.  I turned mine clockwise and the measured VREF was 0.82VDC.  I will need to turn the pot slightly counterclockwise to lower the VREF.  You may need to do this a couple of times to get to your ideal VREF set point.  Once you have set your VREF, you are now set to calibrate your steppers/mm.


Calibrating Your X, Y, and Z Steppers

Now that we have set up our VREF, Let’s Calibrate Our X Y Z Steppers.

gcode commands for stepper calibration
Current Steps for X Y Z in your firmware
  1. First, we need to print out the test cube. If you haven’t already, go ahead and download the test cube from the Items Needed section. First, you need to load the test cube into your preferred slicer. Then, you are going to print this with a .2mm layer height with 2 inner walls, 2  top/bottom layers, and 10% infill. Click Print.
  2. Now that our test cube printed. Let’s grab our calipers, and measure the sides of X Y Z. Take note to measure above you your first three layers. If you have an elephant’s foot on the bottom of your print, this will throw off the measurement.  Make sure you are using a slight amount of pressure. Take note of you X Y Z measurements.test cube for stepper calibration
  3. Results for my test cube are,  Z = 19.01 Y=21.01 X=21.01. We can see that our steppers are off by up to 1mm.  While this may not seem like a lot, but what if you want to print a 300mm height by 200mm width vase?  On our Z we are coming up 4.95% short, which will give us 285.15mm instead of the 300mm we wanted.
  4. As a result, we need to do some math to fix our steppers. (Requested Travel Distance * Current Steps)/Actual Travel Distance = New Stepper.  Apply this algorithm for all your steppers X Y Z.
    • Z Stepper: (20*400)/19.01=420.61
    • X Stepper: (20*80)/21.01=76.15
    • Y Stepper: (20*80)/21.01=76.15
  5. Marlin prefers whole numbers. I would recommend rounding off your steps. X=420 X and Y =76

Saving Your New X Y Z Steps

  1. Enter your XY Z steps through command terminal.
    • X = M92  X76
    • Y = M92  Y76
    • Z = M92  Z420
  2. Remember to send M500 to save your new steps too your firmware.

Reprint And Verify

Now that we have our new Extruder Steps, X, Y, and Z steps. Reprint your test cube and verify. If your measurements are still off. Repeat the steps above and use your new steps values.  Making sure that your steps are correct is another important piece to the stepper calibration puzzle!

That’s It, You’re Calibrated!!!

With perfect stepper calibration, we are one step closer to getting amazing prints. We are now Master Stepper Calibrators!

Check out Thingiverse for some amazing print ideas.


Also make sure to check out our other articles, including TronXY White PLA Review, Noob Mistakes: Common First Timer Fails! And Octopi Install Tutorial and Favorite Plugins!


Add a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.