How would I begin measuring my hotend / carriage dimensions in Marlin to prevent my hotend from slamming into the frame?

I see in Marlin the 'define bed size' parameters

#define Y_BED_SIZE 360       
#define Z_MAX_POS 400          
#if ENABLED(E3DHemera)            
#define X_BED_SIZE 352            
#define X_MAX_POS 352          
#define X_BED_SIZE 360       
#define X_MAX_POS 360             
#define Y_MAX_POS 360           
#define ClipClearance 25       

But how would I go about measuring my hotend / carriage assembly to edit the values accordingly?

I'm not sure how I would measure it or at what point of reference I'm measuring from, is it from the nozzle to the edge of the hotend carriage in both the X and Y or total space on X and Y.

I'm using an Ender 5 plus.

I have a custom-made aluminum hot end carriage for my E3D Hemera.

I defined the BLTouch probe offset.

I'm using "Tiny Machines" firmware and my next step in the installation is defining the aforementioned parameters. In the video tutorial, I'm watching for installation they are using a different mount for their E3D Hemera, so I'm unsure how I would go about defining my own values for my setup.

The guide I'm following is here

I also moved one of my end stops closer to the carriage because my original endstop would trigger on the wheels, but now that I installed the new carriage, it hits the frame before triggering the endstop, is there an endstop offset value I can adjust for what I think is my Y-axis?

(The axis going from left to right)


1 Answer 1



Using a larger carriage will, if too large, diminish the printing area.

To determine the correct values (for the X-axis) you:

  • First need to assure that the nozzle can reach the origin, if not, try to see if you can move the endstop without the carriage hitting the frame, if not possible, your left margin will be decreased. If there was enough space for the carriage, and a value for X_MIN_POS defined, this value needs to be decreased. See How to center my prints on the build platform? (Re-calibrate homing offset) to set these margins correctly as you effectively need to reposition the print area on the build area.
  • Second, define the bed dimensions temporarily to be the design size (do note to not bluntly jog the carriage to the end positions!).
  • Now flash the firmware and home the X-axis, jog the carriage in increments to the right and observe the position on the LCD or through a connected application over USB. When the carriage is about to hit the frame, note the value, this is your bed X size (for a CoreXY make sure the carriage is clear over the whole Y-axis).
  • Something similar can be done for the Y-axis.
  • When you have noted the maximum sizes in X and Y direction, change the firmware and re-flash the printer board.

More details

The text below goes a little more in depth, first some definitions, then some theory.


In reaction to:

The axis going from left to right

When facing your printer the left to right movement is your X-axis, back and forth the Y-axis and up and down the Z-axis.
   -> Please note this is generally the most used printer convention, exceptions are applicable.

Hotend dimensions are needed for your slicer (when you need to sequentially print multiple objects), firmware uses bed dimensions and positions.

Bed dimensions

The following image reflects the changes to the build area when a larger sized carriage is used on the same printer (grey is the original size, red is the decreased area as a result of a larger carriage; note this is for fixed endstop positions!). Note, this is an example, CoreXY machines have limited space, so a decreased print area is more likely to be seen in both X and Y dimension. Prusa i3 style printers have the Y endstop generally on the bed carriage, so the bed size in Y will most likely not decrease. It totally depends on the construction of the printer, the extra space between the frame parts and the carriage (usually you can see that instantly by the endstop offsets, if there aren't homing endstop offsets, there is not extra space and the print dimension of that axis will decrease) or the ability to move the offset. Note that the bottom half of the image draws the out the result for losing X movement, the red area does account for losing Y movement as well, this is not uncommon for CoreXY, especially the printers with limited extra space for the carriage beyond the minimum and maximum bed positions.

enter image description here

How does this translate to your situation?

From Tiny Machines (TM) firmware (InsanityAutomation) you'll find that:

    #define X_MIN_POS 0
    #define Y_MIN_POS 0

This tells you that there is no offset from the homing endstop.

    #if ENABLED(E3DHemera)
      #define X_BED_SIZE 352
      #define X_MAX_POS 352

This tells you that there is less printing space in the X direction available.

From Marlin configurations (, you can find something similar. It looks like somebody did a similar attempt, but added the offset to the X_MIN_POS and mixed up the signs (it does hint to a 8 mm offset, so the creator probably also has a e3D Hemera extruder).

From the TM constants we read that the endstops in fact define the origin of the printer to be at the endstops (the MIN values are zero) so the printer is at the origin when homed. Because of the larger extruder, already 8 mm of the X dimension is used, hence the smaller bed size of 306 - 8 = 352 mm. This is also the X_MAX_POS, the carriage is not allowed further. You should now look into your custom mount and the endstop location and deduce your own "x mm" offset.

  • $\begingroup$ But what about the opposite side? I only have 2 endstops , one for x and one for y. And sure , thank you. $\endgroup$ Jul 5, 2021 at 22:21
  • $\begingroup$ From the display you read what the maximum is so the opposite site is taken care off, no need to worry. $\endgroup$
    – 0scar
    Jul 5, 2021 at 22:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .