Replicator 2 and 2X X-Y axis scale test

1,076 views
Skip to first unread message

AGG

unread,
Sep 27, 2013, 11:46:55 AM9/27/13
to make...@googlegroups.com
It is almost time to start calibrating my printers after a month of out of the box printing. I've read some of the Jetguy posts why the setup numbers for steps per mm for R2 and R2X are not correct and I decided to verify if it is true. I created some g-code to move 10mm X and Y with slowly increasing the feed rate. During the stable feed rate range I measured by dial indicator attached between the carriage and the frame that 10mm absolute G1 move is equal to 9.86mm measured distance (both X and Y). So, is it a good idea before starting to calibrate the X-Y-Z scales to fix the steps per mm ratio first? I don't understand how MBI never measured the real traveling distance when trying to setup the machine profiles.

Dan Newman

unread,
Sep 27, 2013, 12:13:49 PM9/27/13
to make...@googlegroups.com
In the RepRap world, it's fairly common to calculate these values as a
starting point and then measure and adjust (e.g., calc with Josef Prusa's
online calculator). Back in the Cupcake days, makerbot owners used to calibrate these
X & Y values on their own. I recall less discussion of that with Thing-o-Matics.
But certainly at some point, it became the norm to accept the values
MBI put into their config files and tweak using other means. No idea
why. As to MBI having suspect values in their config files, perhaps it
was just momentum? I know where they got the original ToM values: they
used the pulley's published pitch diameter. Then for the Rep 1, I believe
they just doubled the value since the used the same pulleys and belts and
merely doubled the number of microsteps. As such, the same arguably faulty
value for the ToM was propogated into the Rep 1. And they appear to have
done a similar pitch diam. calc for the Rep 2 as per the comment they put into
the RepG machine def file,

<!-- explanation of steps per mm:
Steps/mm is calculated by dividing the 'drive gear steps per revolution' (in this case, equal to motor_steps) by the 'drive gear circumference' (drive gear diameter = 10.58)
So we get: 3200/(PI*10.58) = 96.275...
-->

That's fine for the extruder's pinch gear, but they used it for X & Y as well.

But why they never tested? They likely did a simple test of printing a cube or
cylinder, measured with calipers, and figured it was within acceptable errors and
moved on. Question then becomes, "what were the acceptable errors and how were they
arrived at"? I'm willing to believe that they did not do simple tests with
a dial indicator -- not to measure travel distance or lash.

Dan

P.S. The pitch diameter of the pinch gear has always been a bit hard to nail down.
MBI used to have one value on their web site where they sold the gear, a different
value in RepG's print-o-matic for RPM calcs, and then a third value that they
used for the ToM and Rep 1 calcs in RepG's machine definition files. As such,
there was disagreement between MBI's own "stuff" as to what the steps/mm was
for the extruder.

billyd60

unread,
Sep 27, 2013, 12:46:10 PM9/27/13
to make...@googlegroups.com
Manufacturing tolerances from one machine to the next would require individual ratios for every machine they make to get it perfect. You are talking about 1.4% error. That is well within any reasonable expected error on a mass produced machine.

AGG

unread,
Sep 27, 2013, 4:35:53 PM9/27/13
to make...@googlegroups.com
So, it looks not good to change this settings in the profile. If most of the people use this offset it is better to keep it equal in order to have uniform type models on thingiverse and then everyone to scale it according to the individual printer offset (if needed).

Dan Newman

unread,
Sep 27, 2013, 4:47:32 PM9/27/13
to make...@googlegroups.com
I'd argue that if you want to set your steps/mm to be correct for your
bot then by all means
do so. And preferably do it in such a way that you do not lose the
change when you upgrade
your slicer, saving you having to reinstantiate the change.

Many thingiverse users do not use Makerbots. Instead they use other
printers which
may or may not be better calibrated or which they may or may not have
calibrated themselves.
As such, if you want thingiverse models to be beneficial to the world at
large (as opposed to
just the owners of Rep 2s or 2Xs), then you should post models which
are dimensionally
accurate, allowing for commonly accepted tolerances needed to effect
proper fit. (And
put in the instructions relevant information about how to tweak the fit
if relevant.) Don't
tweak them for a specific bot. (Even mods for a specific bot -- look at
the requests folks
make from time to time for anyone to print them a part to help them get
their bot of flavor X
back up and running. No knowing which brand of bot the helpful
volunteer will use.)

Note also that depending upon the prep tools someone has available (or
within their skill set),
they may not be able to effect per axis scalings. And if so, then
adjusting the steps/mm is the only
way to go.

Dan

AGG

unread,
Sep 27, 2013, 5:22:29 PM9/27/13
to make...@googlegroups.com
Thanks again for this valuable information. The way I do it so far is by creating an accurate model, then print it and adjust the model from the result and print it again until it fits perfectly. That was a huge problem for me to do this for all models that I want to publish and that was the reason I want to calibrate my printers to have the same print done as the model (or as close as possible).

AGG

unread,
Sep 28, 2013, 9:01:09 AM9/28/13
to make...@googlegroups.com
I would like to change my printer pulleys with a 16T version for X and Y-axis stepper motors. From the calculations it appears that I will have resolution of exactly 0.01 mm per step instead of 0.01129 mm now. I'm working only with the metric system and this should improve further the precision and resolution. Any side effects if I do that?

Jetguy

unread,
Sep 28, 2013, 10:53:30 AM9/28/13
to make...@googlegroups.com
NO, don't do that.
 
If you understand how the firmware works and how stepper pulses are sent from the main microcontroller there is a performance hit for using any gearing that results in greater than ~88 steps per mm.
T-O-M used 17t
So did Replicator 1
Replicator 2 and 2X are 18t
Then we get into microsteps and T-O-M is 1/8th and all the rest are 1/16th
This matters at the firmware level
T-O-M is roughly ~47 steps per mm
Replicator 1 is double that due to 1/16th stepping VS 1/8 but both use the same pulleys ~95 steps per mm
Replicator 2 and 2X switched to 18t for a number of reasons, but it improves performance by using a lower ~88 steps per mm
 
I promise you will see artifacts using 16T pulleys as this results in 16*2=32mm/rev  still 3200 steps/rev so 3200/32 = 100 steps per mm
 
I get your idea here, going for an even non decimal number but you are going the wrong way and do not understand the other implications.
Go the other way to 20T pulleys which results in 20*2=40mm/rev  still 3200steps/rev  3200/40 = 80 steps per mm
BTW a fellow engineer and a lot more knee deep into testing this wrote this information. Yes, it's Marlin but all firmwares in common use on these microprocessor use this same function of the interrupts switching gears.
This picture here is the kicker (again, thanks to Ed for this research and graph)
You may not understand what you are looking at but the bottom line shows the stepper pulse output at speed.
Notice the huge gaps between pulses!!!!!! The axis is moving in a straight line with acceleration. Those gaps are what makes the axis noisy because we are not feeding a linear series of timed pulses. Some folks have incorrectly said the stepper "coasts" between but that would result in skipped positioning or steps and keep in mind this is the stepper pulse while enable is constant. The internal stepper driver translation table is holding the coils at the last given pulse. So the system is basically fighting itself.
 
The reason why that is relevant is each progressive interrupt stage or  (gear) if you will, is worse than single pulse mode. This happens with speed, but speed is pulses/time. So when you raise steps per mm count by gearing and microstepping, you change the "gear change" speed at which the firmware must switch.
It's like driving a manual transmission in granny gear. You are tasking the engine ( the microprocessor) to generate the pulses fast enough.
 
Again, the research has said the ideal range is between ~47 to ~88 steps per mm. The ~95 steps per mm of the Replicator 1 is said to be less than optimal so going to 100 via 16T pulleys is even worse.

AGG

unread,
Sep 28, 2013, 2:57:19 PM9/28/13
to make...@googlegroups.com
Jetguy, thank you for the detailed information. All this is based on a constant speed/acceleration in order to compare the different performance of the pulleys or steps/mm ratios. I don't mind to reduce the speed and to set up lower acceleration because I already print at lower speed. I usually print very small parts - let say connector prototypes with sizes below 20mm which should fit to much smaller pin blocks. I can accept much slower print speed if the precision is even very little better than now. So, at lower feed rate I don't see any problem even for this microcontroller at 16MHZ to produce a little more steps per mm than usually do (with proper setup of the machine profile).

Jetguy

unread,
Sep 28, 2013, 4:35:56 PM9/28/13
to make...@googlegroups.com
That's fine for you, just understand my answers are for the masses.
LOTS of people complain about this accuracy problem. Many may search and find this thread.
I try to give the best answer and unfortunately, that does not include using 16t pulleys for 99% of the folks out there.
 
We have a number of things fighting us in a MakerBot.
One is their poor decision to use the atmega1280 instead of the 2560.
Next is the A4982 stepper driver chipset which omits 1/8th stepping from possible combinations for microstepping.
The third and most troubling issue is the Y axis drive arrangement using 3 belts and the fact the first jackshaft at the back doesn't drive both sides of the gantry like the Replicator 1 series.
I've written about this several times but each pulley to belt interface represents some backlash value. You have motor pulley to short belt, then short belt to the pulley on the back right jackshaft, then the pulley that then drives the Y belt on the right side, then the pulley driven by the belt at the front, then transfer the motion across the front shaft to the pulley on the left side, then that pulley to belt interface.
Indirect drive is an understatement.
 
That fatal flaw alone is likely the biggest single cause of your errors, yet you are doing nothing to address it and worrying instead about changing pulleys.
I wish you best of luck but clearly I feel you are working in the wrong direction. That said, please report back your results so that the group can learn what works VS what doesn't.
If you increase resolution and do nothing for backlash, then your problem will persist and continue to frustrate you.
 
Possible solutions include moving the Y motor so it drives the front long jackshaft in a situation more like the Replicator1, or, skip that and go direct drive using a longer 5mm shaft and directly couple the motor to the jackshaft. None of those ideas are unique in the Ultimaker has the same short belt extra backlash problem and many folks mount the motors externally to directly drive the jackshaft and reduce backlash to a single instance just like the way the X axis is driven.
 
 
 
 
 
 
 
Finally, I'm just flat out going to tell you increasing steps per mm will not improve your situation one bit.
On Saturday, September 28, 2013 2:57:19 PM UTC-4, AGG wrote:

AGG

unread,
Sep 28, 2013, 7:53:44 PM9/28/13
to make...@googlegroups.com
Yes, you are right as always. I did many tests to try to measure the X and Y backlash. The average value for X is about 0.1mm and for Y is 0.15mm for my R2 with the belts tightly stretched as much as I can do. So, talking about 0.01 or 0.01129 mm/step is useless. But I had to verify the numbers in order to understand where and how much I miss the precision. I don't plan to redo the whole printer but at least I will position on X-axis the more precise direction that I expect of the print. So far I selected Y to be with less movement to protect the X motor cable but now the priority has changed.
Reply all
Reply to author
Forward
0 new messages