Configuring Marlin Bed Dimensions
Writing this as an ammeteur 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.
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)
Configure correct bed *area* in firmware, compensate with M206 EEPROM. (Mostly correct)
// 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.
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.