Before I throw my 3d printer from a bridge (yes,

Before I throw my 3d printer from a bridge (yes, I’m just a teensy little bit frustrated) , let’s see if someone here can help me.
I had a good working printer. Powered by a Ramps board and external steppers.
At some time in the past, I noticed my prints were sometimes not the correct hight. Not a real problem, since most of the parts I was printing didn’t require an exact hight.
Until a couple of weeks ago.
I needed to print a tube-ish thingy, and after trying to print it standing upright, and failing miserably, I changed the orientation 90 degrees.
The centre hole came out as a ellipse.
Hm. That was weird. I was sure I calibrated everything.
After some testing, things got weird.
When I send my bed down 10mm, I get exactly 10mm. Every time.
But sending it down 1mm, it sometimes moves 1.1mm, sometimes 0.8mm, etc.
At first I suspected my cheap threaded rods, (I use three) so I replaced those for leadscrews. (M8x1.5).
Nothing changed.
Okay, so maybe, I thought, I should connect my 3 stepper-motors in series instead of parallel.
More power, but no solution.
More testing showed that when I tell the steppers to do a full rotation, they do that exactly. All the time. Again and again. But small steps of 0.1mm are all over the place, from 0.06 to 0.18mm
After a search on the internet I learned that the cheap Chinese external drivers I’m using could be the cause.
So I switched to pololu’s.
Same problem.
I’m flabbergasted. Today I made a Gcode file, that sends the steppers down 0.2mm 30 times. I got exactly 6mm.
So I did it again with a 1 second dwell between each command.
Guess what? 5.2mm!
I tried everything I could think of in therms of firmware settings, I tried single step to 1/16 step, Repetier firmware, Marlin, it’s all the same.
So now, before I
a) get a big hammer
or
b) use the bridge
or
c) try crying a bit

I thought I’d ask you.

It would seem that with 3 steppers, if they were randomly missing steps, you would eventually see some binding. Firmware updated recently? Communication error?

Actually sounds like terrible backlash to me.

I was having a similar problem. In my case I watched the z axis go down ever so slightly before going up. I thought is was weird but then I realized with the weight of the gantry the z axis could pretty much fall down by itself. I enabled the option Marlin to keep power on on the z axis stepper even when not moving and it solved my problem. Have you tried using full steps for z moves. Perhaps a look at http://prusaprinters.org/calculator/ might be helpful to get the optimum layer heights for printing. Worth a peek I think.

@Alan_Thomason Good point. But there is no binding. So the problem can’t have anything to do with the drivers or the steppers.Hmm. So that leaves the Mega board or the Ramps.

@Carlton_Dodd Backlash? In the same direction? Dude.

@Steve_Hogg Yes, that could have been it, but I already keep the motors activated. (didn’t at first, but thought of that somewhere on the line). And yes, I’ve tried all possible configurations for micro stepping.
And yes, I did the calculations, as I would have done, as bigger movements are correct.
I could always use a pulley system to make a full turn of the motors exactly 0.2mm, but that would be circumventing the problem, not solving it.

@Rien_Stouten that was my point. Commands may be getting lost or not executed - because it seems all motors are doing the same thing.

@Alan_Thomason And I don’t really see how the ramps board could cause this kind of behavior. So that leaves the Arduino board, right?

I believe the pololus use a variable resister (potentiometer). How about the other driver? Did you make sure to check your potentiometer settings? You might not have enough power going to the motor if you have it set wrong. You do not want to send too much power to them either.

@NathanielStenzel Correct about the pot. All drivers are set at the correct value. But as @Alan_Thomason pointed out, I don’t have binding issues, so the drivers/motors are not the problem.

@Rien_Stouten I think that depends on where the G-code is stored and how it is fed to the printer. If printing from an SD card then the card reader/cable or the arduino. If sent from a host computer then maybe the the usb cable, the port itself, or the program that is sending the code. All of these possibilities are remote; but, things to look into before throwing it from a bridge.

Even if you continually fail to get it working, you could try selling it on ebay or trade it to someone. Just be honest about your problems with it. Others may he able to fix it with minimal problems. You could even trade it for another 3D printer that makes parts with good measurements.

@Rien_Stouten
You made no mention that this occurred repeatedly in the same direction. I apologize for trying to help.

Checked the couplers/pulley set screws? It could be a mechanical issue still.

+Carlton Dodd I thought I made that clear. Obviously not.
Sorry.
And thanks for trying to help. I appreciate that.

@ThantiK Nope, can’t be that. In that case I would also have errors with bigger movements. And I would see some binding issues, since not all three motors would do the same.

@Mark_Rehorst Oooh, tempting.

I’m having a similar problem with my extruder. Extrude 100mm,sometimes it’s perfect, sometimes it’s off by 7mm or so. Gonna put a big fan on the drivers and hope that helps. The only way to debug is with an oscilloscope or daq.

Do you have some pictures we can look at? Does out lose height up and down or only when you go up.