Check list on frequent tasks to review after upgrading firmware


A quick 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).
  • Do you require fade height with Z Probe offset?
  • PID tuning (recommended).
  • E-Step calibration.
  • Do any Endstops triggers need to be inverted?

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.