Hay un bug en el Marlin 1.1.6rev4 que hace que la impresora solo haga UBL en 1/4 de la base.
Abrimos nuestro Marlin desde marlin.ino (nunca desde el propio arduino porque puede que abra otro marlin que tengamos por ahí olvidado).
Vamos a configuration_adv.h y buscamos:
#if ENABLED(MESH_BED_LEVELING)
y veremos:
#if ENABLED(MESH_BED_LEVELING) #define MESH_MIN_X MESH_INSET #define MESH_MAX_X (X_BED_SIZE - (MESH_INSET)) #define MESH_MIN_Y MESH_INSET #define MESH_MAX_Y (Y_BED_SIZE - (MESH_INSET)) #elif ENABLED(AUTO_BED_LEVELING_UBL) #define UBL_MESH_MIN_X UBL_MESH_INSET #define UBL_MESH_MAX_X (X_BED_SIZE - (UBL_MESH_INSET)) #define UBL_MESH_MIN_Y UBL_MESH_INSET #define UBL_MESH_MAX_Y (Y_BED_SIZE - (UBL_MESH_INSET))
y lo sustituiremos por:
#if ENABLED(MESH_BED_LEVELING) #define MESH_MIN_X MESH_INSET #define MESH_MAX_X (X_BED_SIZE - (MESH_INSET)) #define MESH_MIN_Y MESH_INSET #define MESH_MAX_Y (Y_BED_SIZE - (MESH_INSET)) #elif ENABLED(AUTO_BED_LEVELING_UBL) #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET) #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET)) #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET) #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
así de simple.