Files
SMuFF-1.1/platformio.ini
2024-12-02 10:40:21 +01:00

448 lines
23 KiB
INI

;
; SMuFF PlatformIO Project Configuration File
;
#=======================================================================================================================
# IMPORTANT: From version 3.24 on you don't have to deal with these settings anymore, since those can all be
# modified in the new Firmware-Build Configurator dialog. Simply start the build and pick the options
# you want.
# Although, changes made here will be shown in the dialog window.
# Setting the config_defaults allows you to define a customized standard set of options.
#=======================================================================================================================
[config_defaults]
# add your Firmware-Build Configurator defaults for the according controller here,
# each separated by a ',' and without the preceding '-D'
#SKR_E3_30_RET6 = USE_DDE, USE_CREALITY_DISPLAY, USE_FAST_SW_SPI, USE_FASTLED_TOOLS, USE_MULTISERVO, USE_SPOOLMOTOR
SKR_E3_30_RET6 = USE_MINI12864_PANEL_V21, USE_MULTISERVO, USE_MULTISERVO_RELAY, USE_DRYER
SKR_E3DIP_RET6 = USE_MINI12864_PANEL_V21, USE_FASTLED_BACKLIGHT
SKR_E3_20_RET6 = USE_LEONERD_DISPLAY, USE_FASTLED_TOOLS
#-----------------------------------------------------------------------------------------------------------------------
# NECESSARY SETTINGS
#
# Pick the display type you're using by removing the comment char (;) accordingly
# For details about software/hardware SPI see:
# https://sites.google.com/view/the-smuff/tips-hints/using-other-displays
#-----------------------------------------------------------------------------------------------------------------------
[display]
build_flags = #======================================================================
# FYSETC / MKS / BTT mini panel 12864 (recommended)
# Only hardware SPI is available
#
# This setting has become the default now, because those displays are the
# easiest to source and mostly the cheapest option
#======================================================================
;-D USE_MINI12864_PANEL_V21 -D USE_FASTLED_BACKLIGHT
#======================================================================
# Creality or BTT-TFT 2.4 / 3.5 displays
# Pick either (fast) software SPI or hardware SPI
#======================================================================
;-D USE_CREALITY_DISPLAY
;-D USE_FAST_SW_SPI # uncomment for using fast software SPI
;-D CREALITY_HW_SPI # uncomment for using hardware SPI instead
# Be aware that you'll need a special cable for the latter option
#======================================================================
# Standard RepRap Full Graphics Display (i.e. MKS mini 12864)
# Only hardware SPI is available
#======================================================================
;-D USE_DEFAULT_DISPLAY
#======================================================================
# My DIY OLED display (uses I2C/TWI interface)
#======================================================================
;-D USE_TWI_DISPLAY
;-D USE_SW_TWI # for SKR V2.0 only!
#======================================================================
# LeoNerd's/GMagicians OLED Module display (uses I2C/TWI interface)
# Enable USE_SW_TWI only on SKR E3 V2.0 board!
#======================================================================
;-D USE_LEONERD_DISPLAY
;-D USE_SW_TWI # for SKR V2.0 only!
#======================================================================
# SMuFF-TFT display attached to TTL serial port on EXP1
# Such display is not available yet. If you enable this, the only way
# to control the SMuFF is via SMuFF WebInterface!
#======================================================================
;-D USE_SERIAL_DISPLAY -D DISPLAY_SERIAL_PORT=1
[other]
build_flags = #----------------------------------------------------------------------
# These build options are now integrated into the according build environments
# (SKR_E3_30_RET6__xxx) and don't have to be set here anymore, unless you're
# using a different board than the SKR Mini E3 V3.0:
#
# Build Environment suffixes are:
# -------------------------------
# _NPX - use NeoPixels for tools
# _MS - use Multiservo board (i.e. FeatherWing Servo)
# _SPM - use the Spool-Motor option
# _DDE - build for Direct Drive Extruder
#
# More than one suffix means it's a combination of the according options.
#----------------------------------------------------------------------
#======================================================================
# defines whether or not you're going to use NeoPixels on tools.
#
# Please notice: The USE_NUM_PIXELS definition has moved into the
# SMuFF-Config and is now configureable at runtime!
#======================================================================
; ${neopixels.build_flags}
#======================================================================
# The following defines determine whether or not you're going to use the
# Adafruit Multiservo option.
#======================================================================
; ${multiservo.build_flags}
#======================================================================
# The following defines determine whether or not you're going to use the
# Spool-Motor option.
#======================================================================
; ${spoolmotor.build_flags}
; [neopixels]
; build_flags = -D USE_FASTLED_TOOLS
; [multiservo]
; build_flags = # Do not change the PCA9685_FREQ unless you have an osciloscope to verify the new frequency setting!
; -D USE_MULTISERVO -D USE_PCA9685_SW_I2C -D PCA9685_FREQ=27750000
; # Do not enable the USE_MULTISERVO_RELAY option unless you have the custom Backbone PCB installed!
; ; -D USE_MULTISERVO_RELAY # Relay is controlled by the SMuFF-Backbone board
; [spoolmotor]
; build_flags = # Do not change the PCA9685_FREQ_MOTORx unless you have an osciloscope to verify the new frequency setting!
; -D USE_SPOOLMOTOR -D USE_PCA9685_SW_I2C -D PCA9685_FREQ_MOTOR1=27750000 -D PCA9685_FREQ_MOTOR2=27750000 -D PCA9685_FREQ_MOTOR3=27750000
; [dryer]
; build_flags = USE_DRYER
#-----------------------------------------------------------------------------------------------------------------------
# SPECIAL OPTIONS
#
# Set special options by adding or removing the comment char (;) only if you're instructed to do so!
#-----------------------------------------------------------------------------------------------------------------------
[options]
build_flags = -D SMUFF_V5 # this compiles the firmware for V5/V6
;-D USE_ZSERVO
;-D DEBUG # comment out this define to get rid of any debug messages
;-D __HW_DEBUG__ # comment out this define to disable the 500Hz signal on the debug pin
-D NEVER_DISABLE_SERVOS # don't disable servos after they have been activated (Wiper/Cutter only - ignored on Multiservo Board)
;-D MARLIN2_ONLY # uncomment this define _only_ if you're compiling for Marlin 2.0 with MMU2
;-D SOFTRESET # uncomment this define in case your bootloader sends data to (USB) serial port after RESET
;-D SWAP_Y_STEPPER # special case for E3-V2.0 / E3-V3.0 - swaps Y with E stepper driver
;-D SWAP_X_STEPPER # special case for E3-V3.0 - swaps X with E stepper driver
;-D SWAP_SELECTOR_ENDSTOP # special case for E3-V3.0 - swaps X and Y endstop signal pins
;-D USE_PCA9685_SW_I2C # common settings for Multiservo and Spool-Motors
-D PCA9685_FREQ=27750000 # Do not change the PCA9685_FREQ_x unless you have an osciloscope to verify the new frequency setting!
-D PCA9685_FREQ_MOTOR1=27750000
-D PCA9685_FREQ_MOTOR2=27750000
-D PCA9685_FREQ_MOTOR3=27750000
-D PCA9685_FREQ_MOTOR4=27750000
#-----------------------------------------------------------------------------------------------------------------------
# SPECIAL FLAGS (don't use unless you really know what they're for)
#-----------------------------------------------------------------------------------------------------------------------
[relay]
build_flags = # uncomment the following define if your relay is connected to the "PROBE" pin (old connection point)
;-D RELAY_ON_YSTOP # special case for E3-DIP (use only if instructed to)
;-D RELAY_ON_PROBE
#-----------------------------------------------------------------------------------------------------------------------
# BUILD CONFIGURATIONS
#-----------------------------------------------------------------------------------------------------------------------
[platformio]
default_envs = SKR_E3_30_RET6
#
# STM32 common build flags for USB port usage
#
[USB]
build_flags = -D ENABLE_USB_SERIAL
-D SERIAL_USB
-D USBD_USE_CDC
-D USBCON
# modified USB Manufacturer and Product strings
;-D USB_MANUFACTURER_STRING='"STMicroelectronics"' # is being set by the STM library by default
-D USB_PRODUCT_STRING='"SMuFF 3.x CDC in FS mode"'
[USB_EXTRA]
build_flags = # Mimics LeafLabs Maple USB ID. To disable that comment out the following line.
-D MIMIC_LIBMAPLE_USB_ID -D USBD_VID=0x1eaf -D USBD_PID=0x0004
#
# include these if your board is equipped with TMC stepper drivers by default
# and set the definitions accordingly
#
[TMC]
lib_deps = https://github.com/teemuatlut/TMCStepper # library being used for TMC stepper drivers
build_flags = -D HAS_TMC_SUPPORT
-D TMC_SW_BAUDRATE=19200
-D TMC_HW_BAUDRATE=250000
[common]
build_type = release
build_flags = # some compiler options to get rid of not really critical messages while compiling
-Wno-unused-variable
-Wno-format-extra-args
-Wno-misleading-indentation
# U8G2 library wrappers
-Wl,--wrap=u8g2_UserInterfaceSelectionList
-Wl,--wrap=u8x8_byte_arduino_2nd_hw_spi
-Wl,--wrap=u8g2_UserInterfaceMessage
-std=gnu++14
-Os
-g0 # generate debug information, use: -g for default, -g1 for minimal, -g3 for maximal or -g0 for no debug information
# new for Arduino_Core_STM32
-D USE_SDFAT
# new (doesn't compile without) for 'framework-arduinoststm32' V2.4.0 (a.k.a. @~4.20400)
-UNDEBUG
build_src_filter = +<*> -<.git/> -<.svn/> -<example/> -<examples/> -<test/> -<tests/>
-<Configs/> -<docs/> -<help/> -<images/> -<menus/> -<options/> -<Schematics/> -<sounds/> -<STL> -<USB-Driver>
-<src/ClockConfig/>
build_unflags = -std=gnu++11
lib_deps = https://github.com/greiman/SdFat.git#2.2.0 # SD-Card file system library
https://github.com/bblanchon/ArduinoJson.git#v6.21.2 # JSON library for the configuration file
https://github.com/olikraus/U8G2_Arduino.git#2.34.22 # LC-Display library
https://github.com/technik-gegg/SoftWireSTM32.git # library for Software I2C
https://github.com/technik-gegg/LeoNerd-OLED-Module-Library.git # my own library for LeoNerd's OLED Module
https://github.com/technik-gegg/Adafruit-PWM-Servo-Driver-Library.git @ ~2.4.0 # my modified Adafruit Multi-Servo library for software I2C
Wire # should be included by default because of the dependencies
SPI # but sometimes that doesn't happen...
[AdaNeoPx]
lib_deps = https://github.com/adafruit/Adafruit_NeoPixel.git # Adafruit Neopixel library
build_flags =
[STM32_COMMON]
platform = ststm32@=17.6.0 #17.3.0
#platform_packages = framework-arduinoststm32@=4.20000.210603 # for RCT6 (otherwise you'll get a FLASH overflow)
#platform_packages = framework-arduinoststm32@~4.20701 # for non RCT6
platform_packages = framework-arduinoststm32@~4.20801.240815 # for non RCT6
framework = arduino
board_build.core = stm32duino # using default core
extra_scripts = include/scripts/SKR_FW_RELOC.py
pre:include/scripts/FW_BUILD_CONFIG.py
#-----------------------------------------------------------------------------------------------------------------------
# BUILD ENVIRONMENTS
#-----------------------------------------------------------------------------------------------------------------------
#
# BIGTREETECH SKR E3 V3.0 RET6 MCU (flashing through SD-Card, using the default bootloader)
#
[env:SKR_E3_30_RET6]
extends = STM32_COMMON
board = STM32G0B1RE
board_build.variants_dir = variants # needed for E3 V3.0
lib_deps = ${common.lib_deps}
${TMC.lib_deps}
${AdaNeoPx.lib_deps}
build_src_filter = ${common.build_src_filter} +<src/ClockConfig/E3_G0/>
build_flags = ${common.build_flags}
${display.build_flags}
${other.build_flags}
${options.build_flags}
${USB.build_flags}
${TMC.build_flags}
${AdaNeoPx.build_flags}
-I include/SKR_mini_E3-3.0
-D __BRD_SKR_MINI_E3
-D __STM32G0XX
-D ARDUINO_ARCH_STM32
-D ENABLE_HWSERIAL1
;-D ENABLE_HWSERIAL2
-D ENABLE_HWSERIAL3
;-D ENABLE_HWSERIAL4
-D FLASH_OFFSET="0x2000" # flash memory offset for SKR bootloader
;-D USE_OLD_CLOCK_SETTINGS # remove or comment out in case the board doesn't show up on Raspberry/Windows
build_unflags = ${common.build_unflags}
debug_tool = stlink
#
# BIGTREETECH SKR MINI E3-DIP V1.1 with RET6 MCU (flashing through SD-Card, using the default bootloader)
#
[env:SKR_E3DIP_RET6] # <-- newer boards are RET6
extends = STM32_COMMON
board = genericSTM32F103RE
lib_deps = ${common.lib_deps}
${AdaNeoPx.lib_deps}
build_src_filter = ${common.build_src_filter} +<src/ClockConfig/E3_F1/>
build_flags = ${common.build_flags}
${display.build_flags}
${other.build_flags}
${options.build_flags}
${USB.build_flags}
${AdaNeoPx.build_flags}
-I include/SKR_mini_E3DIP
-D __BRD_SKR_MINI_E3DIP
-D __STM32F1XX
-D DISABLE_DEBUG_PORT
-D ARDUINO_ARCH_STM32
-D ENABLE_HWSERIAL1
-D ENABLE_HWSERIAL3
-D ENABLE_HWSERIAL4
-D FLASH_OFFSET="0x7000" # flash memory offset for SKR bootloader
${relay.build_flags}
build_unflags = ${common.build_unflags}
# The following two build evnironments have been removed from the list because
# these controller bords became outdated now.
#
# BIGTREETECH SKR E3-DIP V1.1 with RCT6 MCU (flashing through SD-Card, using the default bootloader)
#
; [env:SKR_E3DIP_RCT6] # <-- older boards are RCT6
; extends = env:SKR_E3DIP_RET6
; board = genericSTM32F103RC
#
# BIGTREETECH SKR E3 V2.0 with RET6 MCU (flashing through SD-Card, using the default bootloader)
#
[env:SKR_E3_20_RET6] # <-- newer boards are RET6
extends = STM32_COMMON
board = genericSTM32F103RE
lib_deps = ${common.lib_deps}
${TMC.lib_deps}
${AdaNeoPx.lib_deps}
build_src_filter = ${common.build_src_filter} +<src/ClockConfig/E3_F1/>
build_flags = ${common.build_flags}
${display.build_flags}
${other.build_flags}
${options.build_flags}
${USB.build_flags}
${USB_EXTRA.build_flags}
${TMC.build_flags}
${AdaNeoPx.build_flags}
-I include/SKR_mini_E3-2.0
-D __BRD_SKR_MINI_E3
-D __STM32F1XX
-D DISABLE_DEBUG_PORT
-D ARDUINO_ARCH_STM32
-D ENABLE_HWSERIAL1
-D ENABLE_HWSERIAL3
-D ENABLE_HWSERIAL4
-D FLASH_OFFSET="0x7000" # flash memory offset for SKR bootloader
build_unflags = ${common.build_unflags}
# The following two build evnironments have been removed from the list because
# these controller bords became outdated now.
#
# BIGTREETECH SKR E3 V2.0 with RCT6 MCU (flashing through SD-Card, using the default bootloader)
#
; [env:SKR_E3_20_RCT6] # <-- older boards are RCT6
; extends = env:SKR_E3_20_RET6
; board = genericSTM32F103RC
#
# Please notice:
# The SKR E3 V1.2 board has been removed from the list of supported controllers for V6
# because it lacks in some essential components. Using E3 V2.0 or better E3 V3.0 instead
# will give you less headache.
# If you need to compile for V1.2, remove comment sign down below and do it at your own risk.
#
# BIGTREETECH SKR E3 V1.2 (flashing through SD-Card, using the default bootloader)
#
; [env:SKR_E3_12_RCT6]
; extends = STM32_COMMON
; board = genericSTM32F103RC
; lib_deps = ${common.lib_deps}
; ${TMC.lib_deps}
; ${AdaNeoPx.lib_deps}
; build_src_filter = ${common.build_src_filter} +<src/ClockConfig/E3_F1/>
; build_flags = ${common.build_flags}
; ${display.build_flags}
; ${other.build_flags}
; ${options.build_flags}
; ${USB.build_flags}
; ${USB_EXTRA.build_flags}
; ${TMC.build_flags}
; ${AdaNeoPx.build_flags}
; -I include/SKR_mini_E3-1.2
; -D __BRD_SKR_MINI_E3
; -D __STM32F1XX
; -D ARDUINO_ARCH_STM32
; -D ENABLE_HWSERIAL1
; #-D ENABLE_HWSERIAL2
; -D ENABLE_HWSERIAL3
; -D ENABLE_HWSERIAL4
; -D FLASH_OFFSET="0x7000" # flash memory offset for SKR bootloader
; build_unflags = ${common.build_unflags}
#
# BIGTREETECH SKR MINI V1.1 (flashing through SD-Card, using the default bootloader)
#
; [env:SKR_MINI_RCT6]
; extends = STM32_COMMON
; board = genericSTM32F103RC
; lib_deps = ${common.lib_deps}
; ${AdaNeoPx.lib_deps}
; build_src_filter = ${common.build_src_filter} +<src/ClockConfig/E3_F1/>
; build_flags = ${common.build_flags}
; ${display.build_flags}
; ${other.build_flags}
; ${options.build_flags}
; ${USB.build_flags}
; ${USB_EXTRA.build_flags}
; ${AdaNeoPx.build_flags}
; -I include/SKR_mini
; -D __BRD_SKR_MINI
; -D __STM32F1XX
; -D ARDUINO_ARCH_STM32
; -D ENABLE_HWSERIAL1
; -D ENABLE_HWSERIAL3
; #-D ENABLE_HWSERIAL4
; -D FLASH_OFFSET="0x7000" # flash memory offset for SKR bootloader
; build_unflags = ${common.build_unflags}
#--------------------------------------------------------
# WARNING: This board has never been tested!
#--------------------------------------------------------
#
# BIGTREETECH SKR E3 RRF (flashing through SD-Card, using the default bootloader)
#
; [env:SKR_E3_RRF_VGT6]
; extends = STM32_COMMON
; board = genericSTM32F407VGT6
; lib_deps = ${common.lib_deps}
; ${TMC.lib_deps}
; ${AdaNeoPx.lib_deps}
; build_src_filter = ${common.build_src_filter} +<src/ClockConfig/E3_F4/>
; build_flags = -D WARNING_NOT_RELEASED
; ${common.build_flags}
; ${display.build_flags}
; ${other.build_flags}
; ${options.build_flags}
; ${USB.build_flags}
; ${TMC.build_flags}
; ${AdaNeoPx.build_flags}
; -I include/SKR_E3-RRF
; -D __BRD_SKR_E3_RRF
; -D __STM32F4XX
; -D STM32_HIGH_DENSITY
; -D ARDUINO_ARCH_STM32
; -D ENABLE_HWSERIAL1
; -D ENABLE_HWSERIAL2
; -D ENABLE_HWSERIAL3
; #-D ENABLE_HWSERIAL4
; -D FLASH_OFFSET="0x8000" # flash memory offset for SKR bootloader
; build_unflags = ${common.build_unflags}
; -U USE_FASTLED_TOOLS
; -U USE_FASTLED_BACKLIGHT