Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
1 task done
MCFFHAB opened this issue Jun 28, 2024 · 7 comments
Open
1 task done

Comments

@MCFFHAB
Copy link

MCFFHAB commented Jun 28, 2024

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:

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

  • A ZIP file containing your Configuration.h and Configuration_adv.h.

Additional information & file uploads

Config and Pins Files.zip

@ellensp
Copy link
Contributor

ellensp commented Jun 28, 2024

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
Copy link
Contributor

ellensp commented Jun 28, 2024

Seems to be #27111

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

@ellensp
Copy link
Contributor

ellensp commented Jun 28, 2024

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
Copy link
Author

MCFFHAB commented Jun 28, 2024

Great news. Thank you very much!

@ellensp
Copy link
Contributor

ellensp commented Jun 29, 2024

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

@MCFFHAB
Copy link
Author

MCFFHAB commented Jun 29, 2024

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

@MCFFHAB
Copy link
Author

MCFFHAB commented Jul 9, 2024

So after using this workaround for sometime I noticed that the LCD screen control does not work. I did not noticed this problem before because I was using Octo Print. To resolve this problem I reverted the commit for "SW SPI Mode 3 for U8G on STM32 (#27111)" and now all works well. I did apply all other commits that were introduced at the same time: "U8G_SPI_USE_MODE_3 for *_MINI_12864", "USE_SOFTWARE_SPI => SDFAT_USE_SOFTWARE_SPI", "Misc. SPI cleanup". All of these did not create a problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants