Notifications
Clear all

Prints slightly small  

  RSS
jordan.c
(@jordan-c)
Estimable Member
Prints slightly small

I have noticed a slight size discrepancy in my prints and I am wondering if this is expected or maybe my calibration is busted?

Dimensions on the x y axis seem to be very slightly smaller than what is specified in the models. I see about a .15 to .25 reduction in widths and inside holes / boxes. Z seems to be slightly larger by about the same amount. I thought maybe I was model things wrong, so I printed one of these

http://www.thingiverse.com/thing:1363023

And see the same results. Is this an expected? Or a symptom of something else?

Posted : 09/01/2017 2:39 pm
David T.
(@david-t)
Noble Member
Re: Prints slightly small

I use this http://www.thingiverse.com/thing:1818250 for dimensional calibration. Use M92 gcode command to set new values of axis steps/mm and M93 for displaying current values. http://reprap.org/wiki/G-code#M92:_Set_axis_steps_per_unit

Posted : 09/01/2017 3:16 pm
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small

David, this is a great print for calibration, I will print it today. But how do you fix the issue? Say you need like .15 mm larger on the X?

Posted : 09/01/2017 5:19 pm
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small

for instance, in slic3r i see this custom gcode

M115 U3.0.9 ; tell printer latest fw version
M83 ; extruder relative mode
M104 S[first_layer_temperature] ; set extruder temp
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 F1000.0 ; go outside pritn area
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line

I don't understand where the calibration variables come in? Does the firmware automatically modify every coordinate to keep the calibration? What about for bumps in the bed only in certain places? How does it know to +.002 the Z there?

Posted : 09/01/2017 5:28 pm
Florian Lang
(@florian-lang)
Eminent Member
Re: Prints slightly small

Maybe this helps:

Posted : 09/01/2017 5:48 pm
David T.
(@david-t)
Noble Member
Re: Prints slightly small

David, this is a great print for calibration, I will print it today. But how do you fix the issue? Say you need like .15 mm larger on the X?
Easy. First display current value using M93. Let's say it is 100 (100 steps per mm).
You printed 100mm object which came out not 100mm but 99.85mm (.15mm smaller). You need to set X steps to 100 * 100 / 99.85 = 100.15, so use "M92 X100.15". Put it anywhere in starting gcode script.

Posted : 09/01/2017 7:01 pm
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small

Well, one is waiting for me when I get home...

Put it anywhere in starting gcode script.

So this is something I will need to inject into every gcode script? Via Slic3r?

Call me crazy but isn't the this what the calibration is for? I don't remember seeing dimensional calibration in the kit assembly, or the manual.

Posted : 09/01/2017 8:18 pm
David T.
(@david-t)
Noble Member
Re: Prints slightly small

I don't remember seeing dimensional calibration in the kit assembly, or the manual.
That's OK because it is not there. 😉
In perfect world calculated steps/mm should be accurate enough. Those people living in real world have to calibrate the printer.

On the other hand, having correct constants placed in starting gcode script eliminates the need of restoring them into eeprom every time you upgrade the firmware.

Posted : 09/01/2017 9:22 pm
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small

Whoa... ok game on

But in fairness, I guess they expect that if you are building your own printer, you are one hardcore maker and should know these things. I am still learning.

So just to recap..

Z Calibration - Make sure the you don't drive the hot head into the bed, built in and vars are saved to eeprom
XYX Calibration - Make sure your bed isn't bumpy or dippy or skewed and you don't drive your hot head into the bed, built in and vars are saved to eeprom
Dimensional Calibration - Make sure your prints are dimensionally accurate so you can print useful things, NOT built in and vars are saved to gcode prefix script

Any other surprise calibrations I should know about 😉

Posted : 09/01/2017 10:52 pm
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small

First display current value using M93

The M93 doesn't seem to return anything...
Send: M93
Recv: ok

What am I doing wrong?

Posted : 10/01/2017 6:49 pm
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small

http://reprap.org/wiki/G-code#M92:_Set_axis_steps_per_unit

this doesn't seem to display anything either... could it be displaying to the LCD rather than the terminal? I am not physically by the printer right now..

Posted : 10/01/2017 7:15 pm
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small

ok! With some hacking I was able to dump the eeprom

Send: M503
Recv: echo:Steps per unit:
Recv: echo: M92 X100.00 Y100.00 Z400.00 E161.30
Recv: echo:Maximum feedrates (mm/s):
Recv: echo: M203 X500.00 Y500.00 Z12.00 E120.00
Recv: echo:Maximum Acceleration (mm/s2):
Recv: echo: M201 X9000 Y9000 Z500 E10000
Recv: echo:Acceleration: S=acceleration, T=retract acceleration
Recv: echo: M204 S1500.00 T1500.00
Recv: echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
Recv: echo: M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.20 E2.50
Recv: echo:Home offset (mm):
Recv: echo: M206 X0.00 Y0.00 Z0.00
Recv: echo:PID settings:
Recv: echo: M301 P40.93 I4.88 D86.08
Recv: echo:Retract: S=Length (mm) F:Speed (mm/m) Z: ZLift (mm)
Recv: echo: M207 S3.00 F2700.00 Z0.00
Recv: echo:Recover: S=Extra length (mm) F:Speed (mm/m)
Recv: echo: M208 S0.00 F480.00
Recv: echo:Auto-Retract: S=0 to disable, 1 to interpret extrude-only moves as retracts or recoveries
Recv: echo: M209 S0
Recv: echo:Filament settings: Disabled
Recv: ok

So my M92 metrics look pretty even. So before I hack my M92, two questions:

1. Is it possible to screw this up, like the Z numbers, and plow my hothead into my bed?
2. Won't changes these numbers only fix prints of the particular size? I.e., if I tweak them for this 100mm star, doesn't that mean the star will print great but things bigger than 100mm will be.. well bigger.. and things smaller than 100mm will be undersized? The M92 is your stepper ratio right?

Posted : 10/01/2017 7:56 pm
David T.
(@david-t)
Noble Member
Re: Prints slightly small

1. Is it possible to screw this up, like the Z numbers, and plow my hothead into my bed?
2. Won't changes these numbers only fix prints of the particular size? I.e., if I tweak them for this 100mm star, doesn't that mean the star will print great but things bigger than 100mm will be.. well bigger.. and things smaller than 100mm will be undersized? The M92 is your stepper ratio right?

1. No, unless you set totally unrealistic values. Anything around default values, let's say +-10%, will only make prints larger/smaller.
2. Yes, those values are ratio-like. Any changes in them will proportionally change all dimensions in particular axis.

Posted : 11/01/2017 11:02 am
David T.
(@david-t)
Noble Member
Re: Prints slightly small

The M93 doesn't seem to return anything...
Send: M93
Recv: ok

I didn't know that, sorry. I never used that command since I looked for default values in source code every time. Fortunately you managed to find out, well done.

Posted : 11/01/2017 11:05 am
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small


I didn't know that, sorry. I never used that command since I looked for default values in source code every time.

Yeah I did that too eventually
https://github.com/prusa3d/Prusa-Firmware/blob/ea22febb42647e91961b7eb29a0278671afc2afb/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h#L27
I really wish at least the X Y dimensional calibration was done with feedback from the XYZ calibration, it seems like it could be done. The probe knows where it is on the bed, the distance between the points is known.

Posted : 11/01/2017 3:27 pm
jordan.c
(@jordan-c)
Estimable Member
Topic starter answered:
Re: Prints slightly small

Yes, those values are ratio-like. Any changes in them will proportionally change all dimensions in particular axis.

I have been thinking about this....
http://reprap.org/wiki/G-code#M92:_Set_axis_steps_per_unit
Allows programming of steps per unit (usually mm) for motor drives.

Steps per mm... so for Y, what this means is it takes 100 steps to move the the bed by 1mm. My printer, for whatever reason (prob belt tightness) needs more steps to move 1mm. So if change this value, everything grows at this axis, not just things that are 100mm. Same goes for every other axis.

Also, I don't think it matters where it goes in the gcode. Mesh bed leveling (prob) uses steps, not absolute distance, to do it's thing. Only G codes that reference distance will use your M92 values. These seem to be using distance, not steps:

G1 Y-3.0 F1000.0 ; go outside pritn area
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line

So they will be affected by your M92 adjustments.

Posted : 11/01/2017 3:37 pm
Share: