PlatformIO Community

.platformio\packages\framework-arduinoststm32-maple\STM32F1\cores\maple/wirish_types.h:65:9: error: unknown type name 'bool'

Hello,

I’ve been trying to load the source code from creality onto my 3d printer for about a week, but I keep encountering errors. This is currently displayed here: (.platformio\packages\framework-arduinoststm32-maple\STM32F1\cores\maple/wirish_types.h:65:9: error: unknown type name ‘bool’).
I tried to change the version but this leads to new errors.
Can someone please help me, I can’t get any further.

What exact version of Marlin or whatever firmware you’re compiling are you using? Can you link to it?

If bool is unknown you may have a corrupted compiler package, remove all folders in C:\Users\<user>\.platformio\packages and C:\Users\<user>\.platformio\.cache and retry.

Good morning, I tried to renew the firmware of my Creality Sermoon D1 but something went wrong and so I wanted to reinstall the Surce code from Creality via VS code but I still have errors when compiling.
[Download | Creality 3D] Download | Creality 3D

Hey,
I deleted the folders you mentioned now nothing works anymore VS Code doesn’t even start compiling anymore.
VS Code--Marlin

Indeed, this is currently incompilable. Downloading the Sermoon-D1 Source code.zip file, extracting it and using pio run fails with errors related to wanting to use libmaple but the STM32 core being used actually. The Marlin version there is outdated.

Sadly, due to older versions of Marlin pointing its library and platform dependencies directly at repos’s master branches (which continously move…) or not pinning a version at all, older Marlin firmwares have become basically incompilable without fixing up all the used versions to the ones which they were at the time of the Marlin release.

A good point of reference for the firmware you’re working is the versions seen in https://github.com/MarlinFirmware/Marlin/blob/2.0.6.1/platformio.ini, but for some libs like the TMCStepper one it’s not an exact match.

I found that with the platformio.ini (and no source code changes)

#
# Marlin Firmware
# PlatformIO Configuration File
#
# For detailed documentation with EXAMPLES:
#
# http://docs.platformio.org/en/latest/projectconf.html
#

# Automatic targets - enable auto-uploading
# targets = upload

#
# By default platformio build will abort after 5 errors.
# Remove '-fmax-errors=5' from build_flags below to see all.
#

[platformio]
src_dir      = Marlin
boards_dir   = buildroot/share/PlatformIO/boards
default_envs = creality

[common]
default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
build_flags = -fmax-errors=5 -g -D__MARLIN_FIRMWARE__ -fmerge-all-constants
lib_deps =
  U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
  LiquidCrystal@1.3.4
  TMCStepper@0.6.1
  Adafruit NeoPixel@1.2.5
  Adafruit_MAX31865=Adafruit MAX31865 library@~1.1.0
  LiquidTWI2=https://github.com/lincomatic/LiquidTWI2/archive/master.zip
  Arduino-L6470=https://github.com/ameyer/Arduino-L6470/archive/dev.zip
  SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
  SailfishRGB_LED=https://github.com/mikeshub/SailfishRGB_LED/archive/master.zip
  SlowSoftI2CMaster=https://github.com/mikeshub/SlowSoftI2CMaster/archive/master.zip

# Globally defined properties
# inherited by all environments
[env]
framework   = arduino
build_flags = ${common.build_flags}
lib_deps    = ${common.lib_deps}

#################################
#                               #
#   Unique Core Architectures   #
#                               #
#  Add a new "env" below if no  #
# entry has values suitable to  #
#   build for a given board.    #
#                               #
#################################

#
# ATmega2560
#
[env:megaatmega2560]
platform          = atmelavr
board             = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps          = ${common.lib_deps}
  TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter        = ${common.default_src_filter} +<src/HAL/HAL_AVR>
monitor_speed     = 250000

#
# ATmega1280
#
[env:megaatmega1280]
extends           = env:megaatmega2560
board             = megaatmega1280

#
# RAMBo
#
[env:rambo]
extends           = env:megaatmega2560
board             = reprap_rambo

#
# FYSETC F6 V1.3
#
[env:fysetc_f6_13]
extends           = env:megaatmega2560
board             = fysetc_f6_13

#
# Sanguinololu (ATmega644p)
#
[env:sanguino_atmega644p]
platform      = atmelavr
board         = sanguino_atmega644p
lib_deps      = ${common.lib_deps}
  TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_AVR>
monitor_speed = 250000

#
# Sanguinololu (ATmega1284p)
#
[env:sanguino_atmega1284p]
extends       = env:sanguino_atmega644p
board         = sanguino_atmega1284p

#
# Melzi and clones (ATmega1284p)
#
[env:melzi]
extends       = env:sanguino_atmega1284p
build_flags   = ${common.build_flags}
lib_ignore    = TMCStepper
upload_speed  = 57600

#
# Melzi and clones (Optiboot bootloader)
#
[env:melzi_optiboot]
extends       = env:melzi
upload_speed  = 115200

#
# AT90USB1286 boards using CDC bootloader
# - BRAINWAVE
# - BRAINWAVE_PRO
# - SAV_MKI
# - TEENSYLU
#
[env:at90usb1286_cdc]
platform      = teensy
board         = at90usb1286
lib_deps      = ${common.lib_deps}
  TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_AVR>
monitor_speed = 250000

#
# AT90USB1286 boards using DFU bootloader
# - PrintrBoard
# - PrintrBoard Rev.F
# - ? 5DPRINT ?
#
[env:at90usb1286_dfu]
extends       = env:at90usb1286_cdc

#
# Due (Atmel SAM3X8E ARM Cortex-M3)
#
#  - RAMPS4DUE
#  - RADDS
#
[env:DUE]
platform      = atmelsam
board         = due
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_DUE>
monitor_speed = 250000

[env:DUE_USB]
extends       = env:DUE
board         = dueUSB

[env:DUE_debug]
# Used when WATCHDOG_RESET_MANUAL is enabled
extends       = env:DUE
build_flags   = ${common.build_flags}
  -funwind-tables
  -mpoke-function-name

#
# NXP LPC176x ARM Cortex-M3
#
[env:LPC1768]
platform          = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.2.zip
board             = nxp_lpc1768
build_flags       = -DU8G_HAL_LINKS -IMarlin/src/HAL/HAL_LPC1768/include -IMarlin/src/HAL/HAL_LPC1768/u8g ${common.build_flags}
# debug options for backtrace
#  -funwind-tables
#  -mpoke-function-name
lib_ldf_mode      = off
lib_compat_mode   = strict
extra_scripts     = Marlin/src/HAL/HAL_LPC1768/upload_extra_script.py
src_filter        = ${common.default_src_filter} +<src/HAL/HAL_LPC1768>
monitor_speed     = 250000
lib_deps          = Servo
  LiquidCrystal
  U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
  TMCStepper@>=0.6.1,<1.0.0
  Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/release.zip
  SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip

[env:LPC1769]
extends           = env:LPC1768
board             = nxp_lpc1769

#
# STM32F1 base
#
[env:STM32F1_base]
platform          = ststm32@~12.1
board_build.core  = maple
platform_packages = framework-arduinoststm32-maple@2.10000.200103
build_flags   = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -std=gnu++14
build_unflags = -std=gnu++11
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
lib_ignore    = Adafruit NeoPixel, SPI
monitor_speed = 250000

#
# STM32F103RC
#
[env:STM32F103RC_base]
extends           = env:STM32F1_base
board             = genericSTM32F103RC
platform_packages = tool-stm32duino
lib_deps          = ${common.lib_deps}
  SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
monitor_speed     = 115200

#
# STM32F103RC_fysetc
#
[env:STM32F103RC_fysetc]
extends           = env:STM32F103RC_base
#board_build.core = maple
extra_scripts     = buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py
build_flags       = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -std=gnu++14 -DDEBUG_LEVEL=0 -DHAVE_SW_SERIAL
lib_ldf_mode      = chain
debug_tool        = stlink
upload_protocol   = serial
monitor_speed     = 250000

#
# BigTree SKR Mini V1.1 / SKR mini E3 / SKR E3 DIP (STM32F103RCT6 ARM Cortex-M3)
#
#   STM32F103RC_bigtree ............. RCT6 with 256K
#   STM32F103RC_bigtree_USB ......... RCT6 with 256K (USB)
#   STM32F103RC_bigtree_512K ........ RCT6 with 512K
#   STM32F103RC_bigtree_512K_USB .... RCT6 with 512K (USB)
#

[env:STM32F103RC_bigtree]
extends           = env:STM32F103RC_base
extra_scripts     = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
build_flags       = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4

[env:STM32F103RC_bigtree_USB]
extends           = env:STM32F103RC_bigtree
build_flags       = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DUSE_USB_COMPOSITE

[env:STM32F103RC_bigtree_512K]
extends           = env:STM32F103RC_bigtree
board_upload.maximum_size=524288
build_flags       = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_FLASH_SIZE=512

[env:STM32F103RC_bigtree_512K_USB]
extends           = env:STM32F103RC_bigtree_512K
board_upload.maximum_size=524288
build_flags       = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_FLASH_SIZE=512 -DUSE_USB_COMPOSITE

#
# STM32F103RE_base
#
[env:STM32F103RE_base]
extends           = env:STM32F1_base
board             = genericSTM32F103RE
platform_packages = tool-stm32duino
lib_deps          = ${common.lib_deps}
  SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
monitor_speed     = 115200

#
# STM32F103RE
#
[env:STM32F103RE]
extends           = env:STM32F103RE_base

#
#   STM32F103RE_bigtree ............. RET6
#   STM32F103RE_bigtree_USB ......... RET6 (USB)
#
[env:STM32F103RE_bigtree]
extends           = env:STM32F103RE_base
extra_scripts     = buildroot/share/PlatformIO/scripts/STM32F103RE_SKR_E3_DIP.py
build_flags       = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4
debug_tool        = stlink
upload_protocol   = stlink

[env:STM32F103RE_bigtree_USB]
extends           = env:STM32F103RE_bigtree
build_flags       = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DUSE_USB_COMPOSITE

#
# STM32F4 with STM32GENERIC
#
[env:STM32F4]
platform      = ststm32
board         = disco_f407vg
build_flags   = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DSTM32F4 -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB -DHAL_IWDG_MODULE_ENABLED
lib_ignore    = Adafruit NeoPixel, TMCStepper
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32_F4_F7> -<src/HAL/HAL_STM32_F4_F7/STM32F7>
monitor_speed = 250000

#
# STM32F7 with STM32GENERIC
#
[env:STM32F7]
platform      = ststm32
board         = remram_v1
build_flags   = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DSTM32F7 -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB -DHAL_IWDG_MODULE_ENABLED
lib_ignore    = Adafruit NeoPixel, TMCStepper
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32_F4_F7> -<src/HAL/HAL_STM32_F4_F7/STM32F4>
monitor_speed = 250000

#
# ARMED (STM32)
#
[env:ARMED]
platform      = ststm32
board         = armed_v1
build_flags   = ${common.build_flags}
  -DUSBCON -DUSBD_VID=0x0483 '-DUSB_MANUFACTURER="Unknown"' '-DUSB_PRODUCT="ARMED_V1"' -DUSBD_USE_CDC
  -O2 -ffreestanding -fsigned-char -fno-move-loop-invariants -fno-strict-aliasing -std=gnu11 -std=gnu++11
  -IMarlin/src/HAL/HAL_STM32
lib_ignore    = Adafruit NeoPixel, SoftwareSerial
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32>
monitor_speed = 250000

#
# Longer 3D board in Alfawise U20 (STM32F103VET6)
#
[env:STM32F103VE_longer]
extends       = env:STM32F1_base
board         = genericSTM32F103VE
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py
build_flags   = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -std=gnu++14 -USERIAL_USB
  -DSTM32F1xx -DU20 -DTS_V12
build_unflags = -std=gnu++11 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
lib_ignore    = Adafruit NeoPixel, LiquidTWI2, SPI

#
# MKS Robin (STM32F103ZET6)
#
[env:mks_robin]
extends       = env:STM32F1_base
board         = genericSTM32F103ZE
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin.py
build_flags   = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -std=gnu++14 -DSTM32_XL_DENSITY

#
# MKS Robin Lite/Lite2 (STM32F103RCT6)
#
[env:mks_robin_lite]
extends       = env:STM32F1_base
board         = genericSTM32F103RC
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_lite.py

#
# MKS Robin Mini (STM32F103VET6)
#
[env:mks_robin_mini]
extends       = env:STM32F1_base
board         = genericSTM32F103VE
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_mini.py

#
# MKS Robin Nano (STM32F103VET6)
#
[env:mks_robin_nano]
extends       = env:STM32F1_base
board         = genericSTM32F103VE
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_nano.py

#
# JGAurora A5S A1 (STM32F103ZET6)
#
[env:jgaurora_a5s_a1]
extends       = env:STM32F1_base
board         = genericSTM32F103ZE
extra_scripts = buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py
build_flags   = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DSTM32F1xx -std=gnu++14 -DSTM32_XL_DENSITY

#
# Malyan M200 (STM32F103CB)
#
[env:STM32F103CB_malyan]
platform    = ststm32
board       = malyanM200
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py -DMCU_STM32F103CB -D __STM32F1__=1 -std=c++1y -D MOTHERBOARD="BOARD_MALYAN_M200" -DSERIAL_USB -ffunction-sections -fdata-sections -Wl,--gc-sections
  -DDEBUG_LEVEL=0 -D__MARLIN_FIRMWARE__
src_filter  = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
lib_ignore  = Adafruit NeoPixel, LiquidCrystal, LiquidTWI2, TMCStepper, U8glib-HAL, SPI

#
# Chitu boards like Tronxy X5s (STM32F103ZET6)
#
[env:chitu_f103]
extends       = env:STM32F1_base
board         = genericSTM32F103ZE
extra_scripts = buildroot/share/PlatformIO/scripts/chitu_crypt.py
build_flags   = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -DSTM32F1xx -std=gnu++14 -DSTM32_XL_DENSITY
build_unflags = -std=gnu++11 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG= -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
lib_ignore    = Adafruit NeoPixel

#
# Creality (STM32F103RET6)
#
[env:creality]
extends       = env:STM32F1_base
board         = genericSTM32F103RE
extra_scripts = buildroot/share/PlatformIO/scripts/creality.py
build_flags   = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
  ${common.build_flags} -std=gnu++14 -DSTM32_XL_DENSITY
debug_tool        = jlink
upload_protocol   = jlink

#
# STM32 HAL environments
#
[env:STM32_hal]
platform      = ststm32
build_unflags = -std=gnu++11
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32>
monitor_speed = 250000

#
# FYSETC S6 (STM32F446VET6 ARM Cortex-M4)
#
[env:FYSETC_S6]
extends           = env:STM32_hal
board             = fysetc_s6
extra_scripts     = buildroot/share/PlatformIO/scripts/fysetc_STM32S6.py
build_flags       = ${common.build_flags}
  -DTARGET_STM32F4 -std=gnu++14
  -DVECT_TAB_OFFSET=0x10000
  -DUSBCON -DUSBD_USE_CDC -DHAL_PCD_MODULE_ENABLED -DUSBD_VID=0x0483 '-DUSB_PRODUCT="FYSETC_S6"'
lib_ignore        = Arduino-L6470
platform_packages = tool-stm32duino
debug_tool        = stlink
#upload_protocol   = stlink
upload_protocol   = serial

#
# STM32F407VET6 with RAMPS-like shield
# 'Black' STM32F407VET6 board - http://wiki.stm32duino.com/index.php?title=STM32F407
# Shield - https://github.com/jmz52/Hardware
#
[env:STM32F407VE_black]
extends           = env:STM32_hal
platform_packages = framework-arduinoststm32@>=3.10700.191028
board             = blackSTM32F407VET6
extra_scripts     = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
build_flags       = ${common.build_flags}
 -DTARGET_STM32F4 -DARDUINO_BLACK_F407VE
 -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"BLACK_F407VE\"
  -IMarlin/src/HAL/HAL_STM32
lib_ignore        = Adafruit NeoPixel, TMCStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, SoftwareSerial

#
# Bigtreetech SKR Pro (STM32F407ZGT6 ARM Cortex-M4)
#
[env:BIGTREE_SKR_PRO]
extends           = env:STM32_hal
platform_packages = framework-arduinoststm32@>=3.10700.191028
board             = BigTree_SKR_Pro
extra_scripts     = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
build_flags       = ${common.build_flags}
  -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407ZG\"
  -DTARGET_STM32F4 -DSTM32F407_5ZX -DVECT_TAB_OFFSET=0x8000
  -DHAVE_HWSERIAL6
  -IMarlin/src/HAL/HAL_STM32
lib_deps          =
  U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
  LiquidCrystal
  TMCStepper@>=0.5.2,<1.0.0
  Adafruit NeoPixel
  LiquidTWI2=https://github.com/lincomatic/LiquidTWI2/archive/master.zip
  Arduino-L6470=https://github.com/ameyer/Arduino-L6470/archive/dev.zip
lib_ignore        = SoftwareSerial, SoftwareSerialM

#
# Bigtreetech SKR BTT002 (STM32F407VET6 ARM Cortex-M4)
#
[env:BIGTREE_BTT002]
extends       = env:STM32_hal
platform      = ststm32@5.6.0
board         = BigTree_Btt002
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
build_flags   = ${common.build_flags}
  -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407VE\"
  -DTARGET_STM32F4 -DSTM32F407_5VX -DVECT_TAB_OFFSET=0x8000
  -DHAVE_HWSERIAL2
  -DHAVE_HWSERIAL3
  -DPIN_SERIAL2_RX=PD_6
  -DPIN_SERIAL2_TX=PD_5
lib_ignore    = Adafruit NeoPixel, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster

#
# Teensy 3.1 / 3.2 (ARM Cortex-M4)
#
[env:teensy31]
platform      = teensy
board         = teensy31
lib_deps      = ${common.lib_deps}
  TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
lib_ignore    = Adafruit NeoPixel
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_TEENSY31_32>
monitor_speed = 250000

#
# Teensy 3.5 / 3.6 (ARM Cortex-M4)
#
[env:teensy35]
extends       = env:teensy31
board         = teensy35
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_TEENSY35_36>

#
# Espressif ESP32
#
[env:esp32]
platform      = espressif32
board         = esp32dev
upload_speed  = 115200
monitor_speed = 115200
upload_port   = /dev/ttyUSB0
lib_deps      =
  AsyncTCP=https://github.com/me-no-dev/AsyncTCP/archive/master.zip
  ESPAsyncWebServer=https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip
lib_ignore    = LiquidCrystal, LiquidTWI2, SailfishLCD, SailfishRGB_LED
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_ESP32>

#
# Native
# No supported Arduino libraries, base Marlin only
#
[env:linux_native]
platform        = native
framework       =
build_flags     = -D__PLAT_LINUX__ -std=gnu++17 -ggdb -g -lrt -lpthread -D__MARLIN_FIRMWARE__ -Wno-expansion-to-defined
src_build_flags = -Wall -IMarlin/src/HAL/HAL_LINUX/include
build_unflags   = -Wall
lib_ldf_mode    = off
lib_deps        =
extra_scripts   =
src_filter      = ${common.default_src_filter} +<src/HAL/HAL_LINUX>

#
# Adafruit Grand Central M4 (Atmel SAMD51P20A ARM Cortex-M4)
#
[env:SAMD51_grandcentral_m4]
platform      = atmelsam
board         = adafruit_grandcentral_m4
build_flags   = ${common.build_flags} -std=gnu++17
extra_scripts = ${common.extra_scripts}
build_unflags = -std=gnu++11
src_filter    = ${common.default_src_filter} +<src/HAL/HAL_SAMD51>
debug_tool    = jlink

#
# Just print the dependency tree
#
[env:include_tree]
platform    = atmelavr
board       = megaatmega2560
build_flags = -c -H -std=gnu++11 -Wall -Os -D__MARLIN_FIRMWARE__
lib_deps    = ${common.lib_deps}
  TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter  = +<src/Marlin.cpp>

The firmware compiles just fine. Don’t forget to remove the .pio folder before compilation to get a clean compile.

Linking .pio\build\creality\firmware.elf
Checking size .pio\build\creality\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  22.9% (used 14984 bytes from 65536 bytes)
Flash: [===       ]  31.8% (used 166492 bytes from 524288 bytes)
Building .pio\build\creality\firmware.bin
============== [SUCCESS] Took 41.98 seconds ==============

Specifically, the critical changes were

  TMCStepper@0.6.1
  Adafruit_MAX31865=Adafruit MAX31865 library@~1.1.0

and

[env:STM32F1_base]
platform          = ststm32@~12.1
board_build.core  = maple
platform_packages = framework-arduinoststm32-maple@2.10000.200103

Seems like PlatformIO was deleted a bit too much and it hasn’t yet redownloaded it – just remove the PlatformIO VSCode extension, close VSCode, remove C:\Users\<user>\.platformio\ completely, then open VSCode and install the PlatformIO extension again. This cleanly redownloads PlatformIO.

Seems like I did double work and someone figured out the basically same thing at https://github.com/MarlinFirmware/Configurations/issues/542#issuecomment-945041244 already a year before me. Meh.

Thank you for your help. What do I have to do now so that I can compile it? I reinstalled PlatformIO. I downloaded a new source code because the old one already had too many changes.

You should just need to replace the platformio.ini contents from the clean redownload with the one posted in .platformio\packages\framework-arduinoststm32-maple\STM32F1\cores\maple/wirish_types.h:65:9: error: unknown type name 'bool' - #5 by maxgerhardt and press the build button.

I managed to compile it without error. but I am haunted by bad luck. When I want to upload the firmware I always get this message:

"J-Link Command File read successfully.
Processing script file…

J-Link connection not established yet but required for command.
Connecting to J-Link via USB…FAILED: Cannot connect to J-Link.

J-Link connection not established yet but required for command.
Connecting to J-Link via USB…FAILED: Failed to open DLL

J-Link connection not established yet but required for command.
Connecting to J-Link via USB…FAILED: Failed to open DLL

Script processing completed. "

In the control panel I see that the motherboard is connected on this port (CH340)

Then the upload method is set for JLink and not… serial / usb upload.

In this section of the platformio.ini, change the last line to

upload_protocol = dfu

and retry uploading. (This will cause a recompile, but no worries).

Hm actually I may be wrong. If it has a CH340 on board an is not directly connected to the USB if the STM32F1 microcontroller, then it probably isn’t using the reset method where you reset the USB-serial, the device appears in Maple DFU bootloader mode (which also needs these drivers installed) over which the upload then happens.

Does the 3D printer have a microSD card slot? Usually you just copy the firmware.bin (in .pio\build\creality in your case) onto a FAT formatted SD card and put it in the printer, the existing firmware on there should then perform the firmware upgrade.

The other way could be that the STM32F1 chip could be set into bootloader mode (BOOT0 jumper to GND on the board somewhere) and then upload_protocol = serial can be used for the chip-built-in serial bootloader.

I’d have to look into your printer schematics and user manual…

Yeah, looking at Service Tutorial Sermoon D1 flash firmware - YouTube it looks like you can just drag-and-drop the firmware.bin onto the microSD card slot and it will update.

Looking at https://img.staticdj.com/bbc60136891b41fd0cebdafaedf24e99.pdf, you also have the SWD port available to you

image

Meaning you can connect an ST-Link clone (very cheap to buy) via GND, SWDIO and SWCLK to the board (not VCC, you want it to be powered by its AC power supply), set upload_protocol = stlink and upload that way.

Okey
Upload does not seem to work I only get a warning like on the photo but the firmware was not installed.

Upload

The version with the SD card I know this was my first solution only unfortunately knows the firmware that Bin. file no more and just doesn’t matter.
I tried at the very beginning to load a new version of Marlin via SD on the printer but something went wrong and the printer has remained in the boot screen ever since.I tried to play the 1st firmware on it again via SD but nothing happens anymore.
I have already managed that the printer has displayed something different via the display than before so I must have made some connection with the pc and the motherboard.
The screen only showed the loading bar and a number field but always a little different than before.
In the meantime he is back in the state in which nothing changes anymore.

Does the method work with bootloader mode?

I think this is my only chance.

Can I also replace the ST-Link clone with an Arduino?

Well this is actually a false “success” result, it did not attempt to upload at all. You would need to install at least the Java runtime on your computer. But, if you say the MicroUSB port is connected to the CH340 only and that is connected to the target chip, it won’t work anyways, since upload_protocol = dfu assumes it can talk straight to the USB bootloader of the chip.

I haven’t seen an Arduino as a general SWD flasher yet. You can however also use a Raspberry Pi (Using Raspberry Pi as SWD programmer via OpenOCD Bitbang protocol — Ayan Pahwa), but you will have to know the OpenOCD commands to burn the firmware.bin. The ST-Link clone costs 5-10€, I would just go with that known-good piece of hardware. A SWD programmer is very handy to have around for debugging pretty much every ARM chip out there anyways.