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.02k stars 19.12k forks source link

[BUG] Marlin bugfix-2.1.x Not compiling correctly since 3 weeks ago - BTT Octopus Pro V1.1 board #27221

Open MCFFHAB opened 4 days ago

MCFFHAB commented 4 days ago

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

Marlin bugfix-2.1.x not compiling correctly since 3 weeks ago - BTT Octopus Pro V1.1 board.

Expand me for log:

```prolog Verbose mode can be enabled via `-v, --verbose` option Copying variant MARLIN_H723ZE to framework directory... CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/marlin_STM32H723ZE.html PLATFORM: ST STM32 (15.4.1) > STM32H723ZE (564k RAM. 512k Flash) HARDWARE: STM32H723ZET6 550MHz, 564KB RAM, 512KB Flash DEBUG: Current (cmsis-dap) External (cmsis-dap, jlink, stlink) PACKAGES: - framework-arduinoststm32 @ 4.20200.221104 (2.2.0) - framework-cmsis @ 2.50700.210515 (5.7.0) - toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1) Converting Marlin.ino LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 15 compatible libraries Scanning dependencies... Dependency Graph |-- TMCStepper @ 0.7.3 |-- U8glib-HAL @ 0.5.4 |-- SlowSoftI2CMaster @ 1.0.0 |-- SlowSoftWire @ 0.0.0+20240627232322 |-- IWatchdog @ 1.0.0 |-- SPI @ 1.0 |-- EEPROM @ 2.0.1 |-- SoftwareSerial @ 1.0 |-- Wire @ 1.0 |-- Servo @ 1.1.2 Building in release mode Compiling .pio\build\STM32H723ZE_btt\FrameworkArduinoVariant\PeripheralPins.c.o Compiling .pio\build\STM32H723ZE_btt\FrameworkArduinoVariant\variant_MARLIN_STM32H723ZE.cpp.o Compiling .pio\build\STM32H723ZE_btt\SrcWrapper\src\HAL\stm32yyxx_hal.c.o several lines Compiling .pio\build\STM32H723ZE_btt\src\src\feature\runout.cpp.o Compiling .pio\build\STM32H723ZE_btt\src\src\feature\tmc_util.cpp.o Compiling .pio\build\STM32H723ZE_btt\src\src\feature\tramming.cpp.o In file included from Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/HAL.h:31, from Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/HAL.h:30, from Marlin\src\HAL\STM32\dogm\../../../inc/MarlinConfig.h:33, from Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:25: Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp: In function 'void swSpiInit()': Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:68:14: error: 'DOGLCD_A0' was not declared in this scope; did you mean 'DOGLCD'? 68 | SET_OUTPUT(DOGLCD_A0); | ^~~~~~~~~ Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/fastio.h:66:41: note: in definition of macro '_SET_OUTPUT' 66 | #define _SET_OUTPUT(IO) pinMode(IO, OUTPUT) //!< Output Push Pull Mode & GPIO_NOPULL | ^~ Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/fastio.h:79:33: note: in expansion of macro 'OUT_WRITE' 79 | #define SET_OUTPUT(IO) OUT_WRITE(IO, LOW) | ^~~~~~~~~ Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:68:3: note: in expansion of macro 'SET_OUTPUT' 68 | SET_OUTPUT(DOGLCD_A0); | ^~~~~~~~~~ Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:71:13: error: 'DOGLCD_CS' was not declared in this scope; did you mean 'DOGLCD_SCK'? 71 | OUT_WRITE(DOGLCD_CS, HIGH); | ^~~~~~~~~ Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/fastio.h:66:41: note: in definition of macro '_SET_OUTPUT' 66 | #define _SET_OUTPUT(IO) pinMode(IO, OUTPUT) //!< Output Push Pull Mode & GPIO_NOPULL | ^~ Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:71:3: note: in expansion of macro 'OUT_WRITE' 71 | OUT_WRITE(DOGLCD_CS, HIGH); | ^~~~~~~~~ In file included from C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32/PinNames.h:4, from C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32/pinmap.h:22, from C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32/PeripheralPins.h:34, from C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32/analog.h:44, from C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino/board.h:8, from C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino/wiring.h:41, from C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino/Arduino.h:36, from d:\users\zeus\documents\github\marlin\marlin\src\hal\shared\marduino.h:36, from Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/HAL.h:27, from Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/HAL.h:30, from Marlin\src\HAL\STM32\dogm\../../../inc/MarlinConfig.h:33, from Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:25: Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp: In function 'uint8_t u8g_com_HAL_STM32_sw_spi_fn(u8g_t*, uint8_t, uint8_t, void*)': Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:103:15: error: 'DOGLCD_CS' was not declared in this scope; did you mean 'DOGLCD_SCK'? 103 | WRITE(DOGLCD_CS, !arg_val); | ^~~~~~~~~ C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32/PinNamesTypes.h:120:34: note: in definition of macro 'STM_PORT' 120 | #define STM_PORT(X) (((uint32_t)(X) >> 4) & 0xF) | ^ Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/fastio.h:58:49: note: in expansion of macro 'digitalPinToPinName' 58 | #define _WRITE(IO, V) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BSRR = _BV32(STM_PIN(digitalPinToPinName(IO)) + ((V) ? 0 : 16))) | ^~~~~~~~~~~~~~~~~~~ Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/fastio.h:69:33: note: in expansion of macro '_WRITE' 69 | #define WRITE(IO,V) _WRITE(IO,V) | ^~~~~~ Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:103:9: note: in expansion of macro 'WRITE' 103 | WRITE(DOGLCD_CS, !arg_val); | ^~~~~ Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:129:13: error: 'DOGLCD_A0' was not declared in this scope; did you mean 'DOGLCD'? 129 | WRITE(DOGLCD_A0, arg_val); | ^~~~~~~~~ C:\Users\Zeus\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32/PinNamesTypes.h:120:34: note: in definition of macro 'STM_PORT' 120 | #define STM_PORT(X) (((uint32_t)(X) >> 4) & 0xF) | ^ Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/fastio.h:58:49: note: in expansion of macro 'digitalPinToPinName' 58 | #define _WRITE(IO, V) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BSRR = _BV32(STM_PIN(digitalPinToPinName(IO)) + ((V) ? 0 : 16))) | ^~~~~~~~~~~~~~~~~~~ Marlin\src\HAL\STM32\dogm\../../../inc/../HAL/../HAL/STM32/fastio.h:69:33: note: in expansion of macro '_WRITE' 69 | #define WRITE(IO,V) _WRITE(IO,V) | ^~~~~~ Marlin\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp:129:7: note: in expansion of macro 'WRITE' 129 | WRITE(DOGLCD_A0, arg_val); | ^~~~~ *** [.pio\build\STM32H723ZE_btt\src\src\HAL\STM32\dogm\u8g_com_stm32duino_swspi.cpp.o] Error 1 ==================================================== [FAILED] Took 60.45 seconds ==================================================== Environment Status Duration --------------- -------- ------------ STM32H723ZE_btt FAILED 00:01:00.447 ```

Bug Timeline

Started around 3 weeks ago

Expected behavior

I expected to compile clean. Did not made any changes to any files (configuration, pins, etc) before problem started occuring. Problem started after updating bugfix-2.1.x branch to the latest commits. To make sure there was no corruption, deleted repository and started a new repository but problem persists.

Actual behavior

Did not compile clean. error shown on log above

Steps to Reproduce

Compile Marlin bugfix-2.1.x with board BTT Octopus Pro V1.1 (config and pins file attached.

Version of Marlin Firmware

bugfix-2.1.x

Printer model

Ender 5 Plus

Electronics

board BTT Octopus Pro V1.1

LCD/Controller

BigTreeTech TFT Touchscreen BTT_GD_TFT50_V3.0

Other add-ons

N/A

Bed Leveling

ABL Bilinear mesh

Your Slicer

Cura

Host Software

SD Card (headless)

Don't forget to include

Additional information & file uploads

Config and Pins Files.zip

ellensp commented 4 days ago

Minimal Config to trigger this issue

define MOTHERBOARD BOARD_BTT_OCTOPUS_PRO_V1_1

define SERIAL_PORT -1

define TEMP_SENSOR_0 -5

define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

set #define TEMP_SENSOR_0 1 and #define HEATER_0_MAXTEMP 275 and it builds!

ellensp commented 4 days ago

Seems to be https://github.com/MarlinFirmware/Marlin/pull/27111

Added Marlin/src/HAL/STM32/dogm/u8g_com_stm32duino_swspi.cpp which is being activated when it shouldn't be

ellensp commented 4 days ago

I think this should be the fix, but need to recheck it when im a bit more awake, Your configs now build with this patch.

diff --git a/Marlin/src/HAL/STM32/dogm/u8g_com_stm32duino_swspi.cpp b/Marlin/src/HAL/STM32/dogm/u8g_com_stm32duino_swspi.cpp
index 68c6430538..93733d8165 100644
--- a/Marlin/src/HAL/STM32/dogm/u8g_com_stm32duino_swspi.cpp
+++ b/Marlin/src/HAL/STM32/dogm/u8g_com_stm32duino_swspi.cpp
@@ -24,7 +24,7 @@

 #include "../../../inc/MarlinConfig.h"

-#if ALL(HAS_MARLINUI_U8GLIB, FORCE_SOFT_SPI)
+#if ENABLED(SKR_MINI_SCREEN_ADAPTER) && ALL(HAS_MARLINUI_U8GLIB, FORCE_SOFT_SPI)

 #include <U8glib-HAL.h>
 #include "../../shared/HAL_SPI.h"
MCFFHAB commented 4 days ago

Great news. Thank you very much!

ellensp commented 4 days ago

Although this is a workaround I notice that this code is replicated on 3 different platforms, so It needs further investigation.

MCFFHAB commented 4 days ago

Ok, will put this workaround on my branch until it gets resolved on the upstream branch. Thank you again.