Check list on frequent tasks to review after upgrading firmware


This post is a reference to common tasks that should be performed on the 3D printer after flashing a new firmware to the device.

When using these device configurations you should take care to check the following are suited to your setup/configuration:

  • Probe offsets for X, Y, Z (important; see below).
  • Require Fade height?
  • PID tuning (recommended).
  • E-Step calibration.
  • Endstop triggers may need inverting depending on your wiring.

Updating Probe offsets

Keep in mind that in using this; you will likely need to adjust your X, Y, Z offset settings specific to your setup. The change is simple and the key settings to look for is NOZZLE_TO_PROBE_OFFSET if you wish to make the change in source. Once found, this branch of Marlin requires the offsets to be defined as an array: {x, y, z}.

The alternative is updating the probe offset values after the new firmware has been installed.

Updating Probe offset values manually using G-code M851

The following example shows the G-Code I would use to set the offset values after flashing a new firmware. You will need to adjust these offsets to accommodate your own requirements.

Set the Z offset for the BLTouch by sending G-code:

M851 Z-1.46 

Set the X and Y distance (probe left front of nozzle) by sending G-code:

M851 X-46.00 Y-16.00 

Save the setting to the EEPROM by sending G-code:


Setting Fade Height manually via G-code M420

Set the Fade Height with G-Code:

M420 Z10

Determining if Endstops need to be inverted

Check all the current endstop states by sending G-Code:


It will report something similar to:

Reporting endstop status
x_min: open
y_min: open
z_probe: open
filament: open

If an endstop is reporting triggered but is not actually triggered (by this I mean pushed) or is reporting open when the switch is pushed then you will need to invert the endstop. If was true initially set to false and vice-versa.

Below are two options for addressing this requirement.

Endstop inversion option 1

If you would prefer to change the inversion on a endstop or endstops in the configuration to compile yourself look for the following:

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.

Endstop inversion option 2

Alternatively; if you wish avoid editing the configuration and utilise the binaries available on this blog; you could swap the placement of the two wires in the DuPont connector, carefully ejecting each wire with a pin/needle and repositioning them by swapping them around.

The mod could be made on either end of the cable plugged in to the endstop; cable closest to the endstop would likely be a easier option for most.

Leave a Reply

I'm pleased you have chosen to leave a comment and engage in a meaningful conversation. Please keep in mind that comments are moderated according to our privacy policy, links are set to nofollow.

Your email address will not be published. Required fields are marked *