Firmware Configuration - Maximum Workspace Limits

Hello All. I recently finished my MPCNC Primo build and it is up and running with the current 2.1.1 firmware on an SKR Pro 1.2 Board.

I would like to configure the firmware to set the maximum X and Y to match the workspace of my build. The workspace is 445 mm in the X-axis and 325 in the Y-axis. After pulling the firmware into VScode, within configuration.h, I modified (what I believe) to be the correct parameters as shown below:

After building, I load the new firmware.bin file to the micro SD and the flash occurs successfully. However, when I test the change manually (via the knob of the TFT screen), I can exceed these limits (ie. go beyond 325mm in the Y or 445mm in the X).

What am I missing here? I’m completely newbie when it comes to firmware, so any guidance is appreciated.

1 Like

There are “soft limits” you can enable in the firmware. But we leave them off, because the coordinates are based on the workspace, not the machine. Once you reset the zero, it will not matter anymore (and negative coordinates in gcode are common). The machine doesn’t usually hurt anything by going over. The stepper skip (which isn’t grinding anything, despite the sound).

1 Like

That makes plenty sense now, thanks for the heads up. I didn’t consider the workspace being the primary driving force for the zero. Great point.

For sake of curiosity, what is the means to go about toggling these “soft limits” on/off? I’m struggling to find this in the firmware, but would like to play with it to get some deeper understanding.

It is possible to enable them in gcode, but it also points out the config names.

1 Like

Jeff knows far more about Marlin firmware than I do, but I always thought this define in configuration.h needed to be uncommented to enable max endstops.

// Max software endstops constrain movement within maximum coordinate bounds
//#define MAX_SOFTWARE_ENDSTOPS

Soft stops (min and optionally max) will only be active after the machine is homed. Most MPCNC users author their jobs relative to the stock, not to the physical coordinates of the machine. The job is started by executing a G92 X0 Y0 in machine space, which resets the origin of the machine from the homed origin to the stock origin. This disables any soft stops, so soft stops are not available during the CNC jobs.

2 Likes

That did it! A simple uncomment was the last piece I was missing. Thank you both!