Configuring Marlin Bed Dimensions
English • العربية • български • català • čeština • Deutsch • Ελληνικά • español • فارسی • français • hrvatski • magyar • italiano • română • 日本語 • 한국어 • lietuvių • Nederlands • norsk • polski • português • русский • Türkçe • українська • 中文(中国大陆) • 中文(台灣) • עברית • azərbaycanca • |
Writing this as an amateur RepRapper who initially struggled with getting prints on the center of the bed.
There are at least 3 different ways to *accurately* get your bed dimensions configured so that your prints wind up centered on the build-plate, all solutions require at least *some* agreement between the Slicer and the Marlin Configuration.
Method 1
Configure proper bed offsets in Firmware, configure slicer with actual bed printable area. (Most correct)
// This is the bed area set to print area including a negative offset for homing origin. // Does not require M206 and indeed required M206 to be clear. #define X_MAX_POS 200 #define X_MIN_POS -45 #define Y_MAX_POS 170 #define Y_MIN_POS -20 #define Z_MAX_POS 130 #define Z_MIN_POS 0
Slicer has correct bed *area* configured as 200,170 (I lose some Y travel because of my binder-clips)
Method 2
Configure correct bed *area* in firmware, compensate with M206 EEPROM. (Mostly correct)
WARNING
This is not what M206 was designed for. M206 sets offset position for a work piece. This also reduces the bed size when miss used in this way.
// This is the bed area set to actual print area, relying on M206 to set the offset from homing origin. // Set this way, you MUST set M206 to your desired negative X,Y offset from homing origin. // Example: M206 X-45 Y-30 #define X_MAX_POS 200 #define X_MIN_POS 0 #define Y_MAX_POS 175 #define Y_MIN_POS 0 #define Z_MAX_POS 130 #define Z_MIN_POS 0
In this configuration you issue an M206 x-45 Y-30, then save it to EEPROM with M500. You can later retrieve this value with M503, but I don't like that the value isn't a "hard coded fact" in the firmware configuration.h.
ACTUAL RESULT
This example results in reduced X MAX and Y MAX positions because travel is limited by both the firmware limits and the M206 offsets. I.e., with the above firmware limits, the M206 X-45 Y-30 runs up against the firmware limits at X_MAX_POS = 200-45 = 155, Y_MAX_POS = 175-30 = 145.
Method 3
Configure correct bed *area* in firmware, compensate with origin offset in Slicer. (Less correct)
Same Configuration.h as Method 2, however the slicer bed shape is configured with a Bed Size of 200,170 and an Origin of -45,-35.
I don't like this solution as the printer itself doesn't "know" where it's own printable area is, and relies on the slicer to sort things out.
Method 4
Technically not a firmware mod but it works too-
Manually move the x and y limit stop switches on your printer frame, then change bed size in the slicer.
Depending on the printer you may need to make a mounting bracket to mount the switch to the frame. For example- the Ender 3 can easily modify its Y switch but the X switch is attached to the drive-belt gear cover. To move it you must make a mounting bracket identical to the one on the Y axis.