MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.27k stars 19.23k forks source link

[BUG] Ender 3V2 - MBL fails to compile with LCD_BED_LEVELING enabled #19202

Closed legaspikyle closed 4 years ago

legaspikyle commented 4 years ago

Bug Description

LCD sub-menu for the bed leveling fails to compile with manual mesh bed leveling. MBL seems to successfully compile without the LCD_BED_LEVELING enabled but with that configuration, the Ender 3 V2 hangs/stops functioning after clicking on the leveling option in the menu and is stuck with a message in the display to wait.

My Configurations

Configuration files were taken from the firmware update: 2.0.6.1 files last Aug 28, 2020 The following lines are uncommented:

define PROBE_MANUALLY

define MANUAL_PROBE_START_Z 0.2

define MESH_BED_LEVELING

define RESTORE_LEVELING_AFTER_G28

define LCD_BED_LEVELING **

define MESH_EDIT_MENU

define LEVEL_BED_CORNERS

define LEVEL_CENTER_TOO

** I tried to see and compile several times to see which is the cause of the failure in the compilation and it all ended down to enabling LCD_BED_LEVELING causes an error message in the SanityCheck.h -- #error "LCD_BED_LEVELING requires a programmable LCD controller." [Configuration Files.zip](https://github.com/MarlinFirmware/Marlin/files/5148587/Configuration.Files.zip)

Steps to Reproduce

  1. Uncomment the following lines mentioned above
  2. Successfully compile the code
  3. Copy firmware.bin to card and update the printer
  4. Choose Level menu in display
  5. Access sub-menu for MBL

Expected behavior:

  1. Successfully compile code with LCD_BED_LEVELING enabled
  2. Accessible MBL sub-menu

Actual behavior:

  1. Fails to compile with LCD_BED_LEVELING enabled
  2. Compiles successfully with LCD_BED_LEVELING disabled/commented BUT printer hangs/stops functioning upon accessing the leveling menu

Additional Information

Compiling the code with LCD_BED_LEVELING enabled results to this compilation error:

In file included from Marlin/src/HAL/STM32F1/../../inc/MarlinConfig.h:41:0, from Marlin/src/HAL/STM32F1/HAL.cpp:30: Marlin/src/HAL/STM32F1/../../inc/SanityCheck.h:1470:6: error: #error "LCD_BED_LEVELING requires a programmable LCD controller."

error "LCD_BED_LEVELING requires a programmable LCD controller."

  ^~~~~

Compiling .pio/build/STM32F103RET6_creality/src/src/HAL/STM32F1/dogm/u8g_com_stm32duino_swspi.cpp.o In file included from Marlin/src/HAL/STM32F1/../../inc/MarlinConfig.h:41:0, from Marlin/src/HAL/STM32F1/HAL_SPI.cpp:35: Marlin/src/HAL/STM32F1/../../inc/SanityCheck.h:1470:6: error: #error "LCD_BED_LEVELING requires a programmable LCD controller."

error "LCD_BED_LEVELING requires a programmable LCD controller."

  ^~~~~

In file included from Marlin/src/HAL/STM32F1/../../inc/MarlinConfig.h:41:0, from Marlin/src/HAL/STM32F1/Servo.cpp:25: Marlin/src/HAL/STM32F1/../../inc/SanityCheck.h:1470:6: error: #error "LCD_BED_LEVELING requires a programmable LCD controller."

error "LCD_BED_LEVELING requires a programmable LCD controller."

  ^~~~~

[.pio/build/STM32F103RET6_creality/src/src/HAL/STM32F1/HAL.cpp.o] Error 1 [.pio/build/STM32F103RET6_creality/src/src/HAL/STM32F1/HAL_SPI.cpp.o] Error 1 *** [.pio/build/STM32F103RET6_creality/src/src/HAL/STM32F1/Servo.cpp.o] Error 1 In file included from Marlin/src/HAL/STM32F1/dogm/../../../inc/MarlinConfig.h:41:0, from Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_swspi.cpp:21: Marlin/src/HAL/STM32F1/dogm/../../../inc/SanityCheck.h:1470:6: error: #error "LCD_BED_LEVELING requires a programmable LCD controller."

error "LCD_BED_LEVELING requires a programmable LCD controller."

  ^~~~~

*** [.pio/build/STM32F103RET6_creality/src/src/HAL/STM32F1/dogm/u8g_com_stm32duino_swspi.cpp.o] Error 1

ellensp commented 4 years ago

The display on a ender 3 v2 does not support LCD_BED_LEVELING its that simple. Duplicate of https://github.com/MarlinFirmware/Marlin/issues/19172 Duplicate of https://github.com/MarlinFirmware/Marlin/issues/18457

To re iterate "You have a DWIN_CREALITY_LCD, this LCD is smart, It gets told what to display when via simple serial commands. But it has limits you cannot directly control what the pixels are doing. The LCD_BED_LEVELING feature requires a lcd that you can control individual pixels. This is simply not a option you can have with this display."

At least until someone rewrites the firmware in the LCD

github-actions[bot] commented 4 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.