Welcome! Log In Create A New Profile

Advanced

Marlin Firmware - Object Scaling

Posted by MattSmoker17 
Marlin Firmware - Object Scaling
October 10, 2014 09:55AM
Hi guys,
I need to adjust the scale in my marlin firmware and i don't know how to do it, can you please help me?
I printed the Yaco calibration object which is 60x60x60 mm and I got the following real results:
X = 60,90
y = 60,60
z = I don't know, my PLA printed at 200° started dropping because of the high speed but this is quite ok for me

I've read this arcticle but I didn't find the correct values, It seems that my firmware uses some kind of formula, this is an extract from my it:

// default settings

#define XYZ_FULL_STEPS_PER_ROTATION 200

#define XYZ_MICROSTEPS 16
#define XYZ_BELT_PITCH 2
#define XYZ_PULLEY_TEETH 16
#define XYZ_STEPS (XYZ_FULL_STEPS_PER_ROTATION * XYZ_MICROSTEPS / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH))

#define DEFAULT_AXIS_STEPS_PER_UNIT   {XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, 570}
#define DEFAULT_MAX_FEEDRATE          {200, 200, 200, 100}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {9000,9000,9000,9000}    // 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

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
// #define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK                20.0    // (mm/sec)
#define DEFAULT_ZJERK                 20.0    // (mm/sec)
#define DEFAULT_EJERK                 20.0    // (mm/sec)

Which values should I change for obtaining a perfect scaling for X and Y?

Thanks smiling smiley
Re: Marlin Firmware - Object Scaling
October 10, 2014 11:40AM
steps set with this line:
#define XYZ_STEPS (XYZ_FULL_STEPS_PER_ROTATION * XYZ_MICROSTEPS / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH))

from defines
XYZ_FULL_STEPS_PER_ROTATION = 200
XYZ_MICROSTEPS = 16
XYZ_BELT_PITCH = 2
XYZ_PULLEY_TEETH = 16
so XYZ_STEPS = (200*16/2/16) = 100

Y 60/60.6 * 100 = 99.01
X 60/60.9 * 100 = 99.52
#define DEFAULT_AXIS_STEPS_PER_UNIT {XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, 570}
becomes #define DEFAULT_AXIS_STEPS_PER_UNIT {99.52, 99.01, XYZ_STEPS, 570}
570 is number that would change with extruder calibration

That being said the 100 number should be corrrect. The small difference you see could be from other factors such as extruder width from slicer.
I would try other slicer settings first and run at slower speed before making change.
Sorry, only registered users may post in this forum.

Click here to login