I built an i3 variant a little over a year ago and have been using it ever since. I've noticed that my prints are now not coming out at the proper Z height. It was losing about .25mm per 10mm of height meaning I print something 10mm high and it comes out about 9.75mm. I was printing at .25mm layer height and switched to the more exact (per the calculator) .2480, but that didn't help.

The printer uses the standard M5 threaded rod for the z-axis. The motors are coupled using aluminium couplers.

Yesterday, I ran the z-axis up and down and cleaned the threaded rods, then re-oiled them and the problem actually got worse. Now I appear to be losing about .5mm per 10mm of height.

As near as I can tell, moving the carriage manually using Repetier moves the proper amount. It's kind of hard to find a consistent place where I can put my calipers and try and get measurements, but moving 10-20mm seems to be giving me accurate movement +/- about .03mm.

The real weird thing is that I still have calibration objects I printed months ago and every one I measured averages the exact height they are supposed to be or very close to it.

The prints I'm getting now are very good. I really have no complaints about the quality, it's just the height is off. I'm building a new printer and I need to print parts for it that are pretty precise but this is a problem now.

My relevant firmware settings are below. I've upgraded to the latest Marlin, but that didn't appear to help anything.

The things I've tried so far:

  • Oiled the Z threaded rods
  • Since I use ABL, checked to make sure the Z probe offset hadn't drifted. Seems dead on.
  • Changed the Z feed rate from 2 to 1 and also tried 3, but the Z motors made a lot of noise at that setting.
  • Increased the stepper voltage from .41 to .55v
  • Double checked the e-steps and they seem almost perfect.
  • Upgraded the Marlin version to the latest.


Code:
#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,4000,724.394}
#define DEFAULT_MAX_FEEDRATE          {500, 500, 2, 25}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.

#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for retracts

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK                15.0    // (mm/sec)
#define DEFAULT_ZJERK                 0.4     // (mm/sec)
#define DEFAULT_EJERK                 5.0    // (mm/sec)
I'm printing ABS with an E3Dv5 hot end @240C. I've tried slicing with both Slic3r 1.2.9a and Cura 15.04 with the same issue. Slic3r indicates 40 layers which seems to add up right. 40 * .2480 = 9.92mm + (1st layer is .32, diff .072) = 9.992mm.

I'm pretty much out of ideas at this point. I hope someone can offer up some suggestions on what I can try.

I've done many temperature tests in the past before settling on 240, but if the temperature were too high, could it cause the layers to squish down more, possibly leading to this?

Bruce