MarlinFirmware / Configurations

Configurations for Marlin Firmware
https://marlinfw.org
GNU General Public License v3.0
2.03k stars 3.36k forks source link

[BUG] Configuration regress prevents build for TMC2209 #416

Closed alfonder closed 3 years ago

alfonder commented 3 years ago

Bug Description

Commit https://github.com/MarlinFirmware/Configurations/commit/b8771fe9081c11ccfb1b29bccd1ea4dc5b12ad2d makes configuration broken when TMC2209 is used.

Configuration Files

configs.zip According to hardware Configuration.h parameter set:

define E0_DRIVER_TYPE TMC2209

Steps to Reproduce

  1. Use default configs from: "examples/Creality/Ender-3/BigTreeTech SKR E3-DIP V1.1"

  2. Set E0 driver type:

    define E0_DRIVER_TYPE TMC2209

  3. In platformio.ini use env set: default_envs = STM32F103RE_btt_USB

  4. Build the firmware via VS Code

Expected behavior:

Successful building the firmware image.

Actual behavior:

Error reported:

In file included from Marlin/src/HAL/STM32F1/../../inc/MarlinConfig.h:49:0,
                 from Marlin/src/HAL/STM32F1/HAL.cpp:30:
Marlin/src/HAL/STM32F1/../../inc/SanityCheck.h:2450:23: error: 'E0_SLAVE_ADDRESS' was not declared in this scope
   INVALID_TMC_ADDRESS(E0);
                       ^
Marlin/src/HAL/STM32F1/../../inc/SanityCheck.h:2432:52: note: in definition of macro 'INVALID_TMC_ADDRESS'
 #define INVALID_TMC_ADDRESS(ST) static_assert(0 <= ST##_SLAVE_ADDRESS && ST##_SLAVE_ADDRESS <= 3, "TMC2209 slave address must be 0, 1, 2 or 3")
                                                    ^~
Marlin/src/HAL/STM32F1/../../inc/SanityCheck.h:2450:23: note: suggested alternative: 'I2C_ADDRESS'
   INVALID_TMC_ADDRESS(E0);
                       ^
Marlin/src/HAL/STM32F1/../../inc/SanityCheck.h:2432:52: note: in definition of macro 'INVALID_TMC_ADDRESS'
 #define INVALID_TMC_ADDRESS(ST) static_assert(0 <= ST##_SLAVE_ADDRESS && ST##_SLAVE_ADDRESS <= 3, "TMC2209 slave address must be 0, 1, 2 or 3")

Additional Information

For unknown reason the commit https://github.com/MarlinFirmware/Configurations/commit/b8771fe9081c11ccfb1b29bccd1ea4dc5b12ad2d has commented out macro E0_SLAVE_ADDRESS. This causes the error displayed above when TMC2209 is used.

alfonder commented 3 years ago

This configuration was used against Marlin "2.0.x" branch. According to https://github.com/MarlinFirmware/Configurations/pull/380 I need to use Marlin "bugfix-2.0.x" branch.