Help upgrading Marlin on SKR 1.3

Hi all,
My lowrider 2 has been working great for a couple years and I decided to upgrade the old Marlin with the one from the V1 github. I have the SKR v1.3 board, with DRV8825 drivers, dual endstops on X and Z , single endstop on y. I have the X and Y axis swapped on my machine.

I transferred all settings from my old Marlin to the new version (file is: Marlin_V1CNC_Skr1p3_DualLR_8825_2.1.1_515-src) At least I think I have it correct but am getting an error compiling. #error “Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS.”
This is the code from configuration_adv.h:

// Multi-Z steppers
//
#ifdef Z2_DRIVER_TYPE
  //#define INVERT_Z2_VS_Z_DIR          // Z2 direction signal is the opposite of Z

  #define Z_MULTI_ENDSTOPS            // Other Z axes have their own endstops
  #if ENABLED(Z_MULTI_ENDSTOPS)
    #define Z2_USE_ENDSTOP   _yMAX_   // Z2 endstop board plug. Don't forget to enable USE_*_PLUG.
    #define Z2_ENDSTOP_ADJUSTMENT 0   // Z2 offset relative to Y endstop
  #endif

I have EXTRUDERS set to 0 in configuration.h. I have X, Y, Z, X2, Z2 drivers defined as DRV8825 and the ENDSTOP plugs enabled:

// @section endstops

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
//#define USE_ZMIN_PLUG
//#define USE_IMIN_PLUG
//#define USE_JMIN_PLUG
//#define USE_KMIN_PLUG
//#define USE_UMIN_PLUG
//#define USE_VMIN_PLUG
//#define USE_WMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
#define USE_ZMAX_PLUG
//#define USE_IMAX_PLUG
//#define USE_JMAX_PLUG
//#define USE_KMAX_PLUG
//#define USE_UMAX_PLUG
//#define USE_VMAX_PLUG
//#define USE_WMAX_PLUG

Does anyone know what’s going on here or what I’m missing?

EDIT: I forgot to include the terminal text. It is here:

Processing LPC1768 (board: nxp_lpc1768; platform: https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.3.zip; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/nxplpc-arduino-lpc176x/nxp_lpc1768.html
PLATFORM: NXP Arduino LPC176x (0.1.3) > NXP LPC1768
HARDWARE: LPC1768 100MHz, 31.97KB RAM, 464KB Flash
DEBUG: Current (cmsis-dap) On-board (cmsis-dap) External (blackmagic, jlink)
PACKAGES: 
 - framework-arduino-lpc176x @ 0.2.9 
 - toolchain-gccarmnoneeabi @ 1.120301.0 (12.3.1)
Converting Marlin.ino
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ strict
Found 2 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Servo @ 1.0.0
|-- U8glib-HAL @ 0.5.4
Building in release mode
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\HAL.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\HAL_SPI.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\MarlinSerial.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\MinSerial.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\eeprom_flash.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\eeprom_sdcard.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\eeprom_wired.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\fast_pwm.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\include\digipot_mcp4451_I2C_routines.c.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\include\i2c_util.c.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\main.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\tft\tft_spi.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\tft\xpt2046.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\timers.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\u8g\LCD_I2C_routines.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_hw_spi.cpp.o
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\HAL_SPI.cpp:51:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\HAL.cpp:24:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\MarlinSerial.cpp:26:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\MinSerial.cpp:24:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\eeprom_sdcard.cpp:29:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\fast_pwm.cpp:24:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\eeprom_wired.cpp:24:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\eeprom_flash.cpp:39:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\main.cpp:34:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\tft\../../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\tft\xpt2046.cpp:23:
Marlin\src\HAL\LPC1768\tft\../../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_ssd_hw_i2c.cpp.o
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_st7920_hw_spi.cpp.o
In file included from Marlin\src\HAL\LPC1768\tft\../../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\tft\tft_spi.cpp:23:
Marlin\src\HAL\LPC1768\tft\../../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
In file included from Marlin\src\HAL\LPC1768\../../inc/MarlinConfig.h:49,
                 from Marlin\src\HAL\LPC1768\timers.cpp:31:
Marlin\src\HAL\LPC1768\../../inc/SanityCheck.h:2686:6: error: #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
 2686 |     #error "Z2_USE_ENDSTOP must be set with Z_MULTI_ENDSTOPS."
      |      ^~~~~
Compiling .pio\build\LPC1768\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_st7920_sw_spi.cpp.o
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\MarlinSerial.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\HAL_SPI.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\HAL.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\MinSerial.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\eeprom_sdcard.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\fast_pwm.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\eeprom_wired.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\eeprom_flash.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\main.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\tft\xpt2046.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\tft\tft_spi.cpp.o] Error 1
*** [.pio\build\LPC1768\src\src\HAL\LPC1768\timers.cpp.o] Error 1
================================================================================== [FAILED] Took 4.12 seconds ==================================================================================

Environment    Status    Duration
-------------  --------  ------------
LPC1768        FAILED    00:00:04.124
============================================================================ 1 failed, 0 succeeded in 00:00:04.124 ============================================================================ 

 *  The terminal process "C:\Users\kortt\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 
1 Like

I believe I found the problem. I think it was yMAX needed to be YMAX (case sensitive?) as I changed it and began getting errors that actually made sense and that I could address.

3 Likes

That is definitely case sensitive.

I would use meld to compare the settings between your version and the V1 settings and only change stuff I knew I wanted. The V1 version will compile, and presumably work (although I’m not sure the 1p3 gets much testing).

Hi Jeff, What is meld, is it like using the Compare plugin in Notepadd++? That is how I compare / update firmware usually
Cheers!

1 Like

Meld is a tool for comparing text files. It used to be that winmeld was the best alternative for windows (meld is a linux app). I haven’t used the compare plugin in notebad++, but it sounds the same.