platformio / platformio-core

Your Gateway to Embedded Software Development Excellence :alien:
https://platformio.org
Apache License 2.0
7.79k stars 784 forks source link

Compile marlin is error on cmd but vscode is success #4008

Closed zhpt closed 2 years ago

zhpt commented 3 years ago

What kind of issue is this?

You can erase any parts of this template not applicable to your Issue.


Configuration

Operating system:Windows10

PlatformIO Version (platformio --version):5.1.1

Description of problem

I want to compile Marlin sources files (version 2.0.7.2). I try to compile on cmd with "platformio run", but it was error about "Marlin\src\module/stepper/trinamic.h:29:10: fatal error: TMCStepper.h: No such file or directory".

But when I try on VS Code , it can compile success.

cmd results vscode results-1 vscode results-2

What's wrong with it? Thank you.

Steps to Reproduce

1.open cmd 2.platformio run

Actual Results

compile success

Expected Results

Marlin\src\module/stepper/trinamic.h:29:10: fatal error: TMCStepper.h: No such file or directory

If problems with PlatformIO Build System:

The content of platformio.ini:

#
# Marlin Firmware
# PlatformIO Configuration File
#
# For detailed documentation with EXAMPLES:
#
# https://docs.platformio.org/en/latest/projectconf/index.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 = mega2560
include_dir  = Marlin

#
# The 'common' values are used for most Marlin builds
#
[common]
default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
  -<src/lcd/HD44780> -<src/lcd/TFTGLCD> -<src/lcd/dwin> -<src/lcd/dogm> -<src/lcd/tft> -<src/lcd/tft_io>
  -<src/HAL/STM32/tft> -<src/HAL/STM32F1/tft>
  -<src/lcd/menu>
  -<src/lcd/menu/game/game.cpp> -<src/lcd/menu/game/brickout.cpp> -<src/lcd/menu/game/invaders.cpp>
  -<src/lcd/menu/game/maze.cpp> -<src/lcd/menu/game/snake.cpp>
  -<src/lcd/menu/menu_backlash.cpp>
  -<src/lcd/menu/menu_bed_corners.cpp>
  -<src/lcd/menu/menu_bed_leveling.cpp>
  -<src/lcd/menu/menu_cancelobject.cpp>
  -<src/lcd/menu/menu_delta_calibrate.cpp>
  -<src/lcd/menu/menu_filament.cpp>
  -<src/lcd/menu/menu_info.cpp>
  -<src/lcd/menu/menu_job_recovery.cpp>
  -<src/lcd/menu/menu_led.cpp>
  -<src/lcd/menu/menu_media.cpp>
  -<src/lcd/menu/menu_mmu2.cpp>
  -<src/lcd/menu/menu_password.cpp>
  -<src/lcd/menu/menu_power_monitor.cpp>
  -<src/lcd/menu/menu_spindle_laser.cpp>
  -<src/lcd/menu/menu_temperature.cpp>
  -<src/lcd/menu/menu_tmc.cpp>
  -<src/lcd/menu/menu_touch_screen.cpp>
  -<src/lcd/menu/menu_ubl.cpp>
  -<src/lcd/extui/lib/mks_ui>
  -<src/lcd/extui/lib/dgus> -<src/lcd/extui/dgus_lcd.cpp>
  -<src/lcd/extui/example.cpp>
  -<src/lcd/extui/malyan_lcd.cpp>
  -<src/lcd/extui/lib/ftdi_eve_touch_ui>
  -<src/lcd/extui/anycubic_chiron_lcd.cpp> -<src/lcd/extui/lib/anycubic_chiron>
  -<src/lcd/extui/anycubic_i3mega_lcd.cpp> -<src/lcd/extui/lib/anycubic_i3mega>
  -<src/lcd/lcdprint.cpp>
  -<src/lcd/touch/touch_buttons.cpp>
  -<src/sd/usb_flashdrive>
  -<src/HAL/shared/backtrace>
  -<src/feature/babystep.cpp>
  -<src/feature/backlash.cpp>
  -<src/feature/baricuda.cpp> -<src/gcode/feature/baricuda>
  -<src/feature/bedlevel/abl> -<src/gcode/bedlevel/abl>
  -<src/feature/bedlevel/mbl> -<src/gcode/bedlevel/mbl>
  -<src/feature/bedlevel/ubl> -<src/gcode/bedlevel/ubl>
  -<src/feature/binary_stream.cpp> -<src/libs/heatshrink>
  -<src/feature/bltouch.cpp>
  -<src/feature/cancel_object.cpp> -<src/gcode/feature/cancel>
  -<src/feature/caselight.cpp> -<src/gcode/feature/caselight>
  -<src/feature/closedloop.cpp>
  -<src/feature/controllerfan.cpp> -<src/gcode/feature/controllerfan>
  -<src/feature/dac> -<src/feature/digipot>
  -<src/feature/direct_stepping.cpp> -<src/gcode/motion/G6.cpp>
  -<src/feature/e_parser.cpp>
  -<src/feature/encoder_i2c.cpp>
  -<src/feature/fanmux.cpp>
  -<src/feature/filwidth.cpp> -<src/gcode/feature/filwidth>
  -<src/feature/fwretract.cpp> -<src/gcode/feature/fwretract>
  -<src/feature/host_actions.cpp>
  -<src/feature/hotend_idle.cpp>
  -<src/feature/joystick.cpp>
  -<src/feature/leds/blinkm.cpp>
  -<src/feature/leds/leds.cpp>
  -<src/feature/leds/neopixel.cpp>
  -<src/feature/leds/pca9533.cpp>
  -<src/feature/leds/pca9632.cpp>
  -<src/feature/leds/printer_event_leds.cpp>
  -<src/feature/leds/tempstat.cpp>
  -<src/feature/max7219.cpp>
  -<src/feature/mixing.cpp>
  -<src/feature/mmu2> -<src/gcode/feature/prusa_MMU2>
  -<src/feature/password> -<src/gcode/feature/password>
  -<src/feature/pause.cpp>
  -<src/feature/power.cpp>
  -<src/feature/power_monitor.cpp> -<src/gcode/feature/power_monitor>
  -<src/feature/powerloss.cpp> -<src/gcode/feature/powerloss>
  -<src/feature/probe_temp_comp.cpp>
  -<src/feature/runout.cpp> -<src/gcode/feature/runout>
  -<src/feature/snmm.cpp>
  -<src/feature/solenoid.cpp> -<src/gcode/control/M380_M381.cpp>
  -<src/feature/spindle_laser.cpp> -<src/gcode/control/M3-M5.cpp>
  -<src/feature/tmc_util.cpp> -<src/module/stepper/trinamic.cpp>
  -<src/feature/twibus.cpp>
  -<src/feature/z_stepper_align.cpp>
  -<src/gcode/bedlevel/G26.cpp>
  -<src/gcode/bedlevel/G35.cpp>
  -<src/gcode/bedlevel/G42.cpp>
  -<src/gcode/bedlevel/M420.cpp>
  -<src/gcode/calibrate/G33.cpp>
  -<src/gcode/calibrate/G34.cpp>
  -<src/gcode/calibrate/G34_M422.cpp>
  -<src/gcode/calibrate/G76_M192_M871.cpp>
  -<src/gcode/calibrate/G425.cpp>
  -<src/gcode/calibrate/M12.cpp>
  -<src/gcode/calibrate/M48.cpp>
  -<src/gcode/calibrate/M100.cpp>
  -<src/gcode/calibrate/M425.cpp>
  -<src/gcode/calibrate/M666.cpp>
  -<src/gcode/calibrate/M852.cpp>
  -<src/gcode/control/M42.cpp> -<src/gcode/control/M226.cpp>
  -<src/gcode/config/M43.cpp>
  -<src/gcode/config/M217.cpp>
  -<src/gcode/config/M218.cpp>
  -<src/gcode/config/M221.cpp>
  -<src/gcode/config/M281.cpp>
  -<src/gcode/config/M301.cpp>
  -<src/gcode/config/M302.cpp>
  -<src/gcode/config/M304.cpp>
  -<src/gcode/config/M305.cpp>
  -<src/gcode/config/M540.cpp>
  -<src/gcode/config/M575.cpp>
  -<src/gcode/config/M672.cpp>
  -<src/gcode/control/M7-M9.cpp>
  -<src/gcode/control/M211.cpp>
  -<src/gcode/control/M605.cpp>
  -<src/gcode/feature/advance>
  -<src/gcode/feature/camera>
  -<src/gcode/feature/i2c>
  -<src/gcode/feature/L6470>
  -<src/gcode/feature/leds/M150.cpp>
  -<src/gcode/feature/leds/M7219.cpp>
  -<src/gcode/feature/macro>
  -<src/gcode/feature/mixing/M163-M165.cpp>
  -<src/gcode/feature/mixing/M166.cpp>
  -<src/gcode/feature/pause/G27.cpp>
  -<src/gcode/feature/pause/G60.cpp>
  -<src/gcode/feature/pause/G61.cpp>
  -<src/gcode/feature/pause/M125.cpp>
  -<src/gcode/feature/pause/M600.cpp>
  -<src/gcode/feature/pause/M603.cpp>
  -<src/gcode/feature/pause/M701_M702.cpp>
  -<src/gcode/feature/trinamic/M122.cpp>
  -<src/gcode/feature/trinamic/M569.cpp>
  -<src/gcode/feature/trinamic/M906.cpp>
  -<src/gcode/feature/trinamic/M911-M914.cpp>
  -<src/gcode/geometry/G17-G19.cpp>
  -<src/gcode/geometry/G53-G59.cpp>
  -<src/gcode/geometry/M206_M428.cpp>
  -<src/gcode/host/M16.cpp>
  -<src/gcode/host/M113.cpp>
  -<src/gcode/host/M360.cpp>
  -<src/gcode/host/M876.cpp>
  -<src/gcode/lcd/M0_M1.cpp>
  -<src/gcode/lcd/M250.cpp>
  -<src/gcode/lcd/M73.cpp>
  -<src/gcode/lcd/M995.cpp>
  -<src/gcode/motion/G2_G3.cpp>
  -<src/gcode/motion/G5.cpp>
  -<src/gcode/motion/G80.cpp>
  -<src/gcode/motion/M290.cpp>
  -<src/gcode/probe/G30.cpp>
  -<src/gcode/probe/G31_G32.cpp>
  -<src/gcode/probe/G38.cpp>
  -<src/gcode/probe/M401_M402.cpp>
  -<src/gcode/probe/M851.cpp>
  -<src/gcode/probe/M951.cpp>
  -<src/gcode/scara>
  -<src/gcode/sd>
  -<src/gcode/temp/M104_M109.cpp>
  -<src/gcode/temp/M155.cpp>
  -<src/gcode/units/G20_G21.cpp>
  -<src/gcode/units/M149.cpp>
  -<src/libs/BL24CXX.cpp> -<src/libs/W25Qxx.cpp>
  -<src/libs/L64XX> -<src/module/stepper/L64xx.cpp>
  -<src/libs/hex_print.cpp>
  -<src/libs/least_squares_fit.cpp>
  -<src/libs/nozzle.cpp> -<src/gcode/feature/clean>
  -<src/module/delta.cpp>
  -<src/module/planner_bezier.cpp>
  -<src/module/printcounter.cpp>
  -<src/module/probe.cpp>
  -<src/module/scara.cpp> -<src/gcode/calibrate/M665.cpp>
  -<src/module/stepper/TMC26X.cpp>
extra_scripts      =
  pre:buildroot/share/PlatformIO/scripts/common-dependencies.py
  pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
  post:buildroot/share/PlatformIO/scripts/common-dependencies-post.py
build_flags        = -fmax-errors=5 -g -D__MARLIN_FIRMWARE__ -fmerge-all-constants
lib_deps           =

#
# Feature Dependencies
#
[features]
HAS_TFT_LVGL_UI         = lvgl=https://github.com/makerbase-mks/LVGL-6.1.1-MKS/archive/master.zip
                          src_filter=+<src/lcd/extui/lib/mks_ui>
                          extra_scripts=download_mks_assets.py
HAS_TRINAMIC_CONFIG     = TMCStepper@~0.7.1
                          src_filter=+<src/feature/tmc_util.cpp> +<src/module/stepper/trinamic.cpp> +<src/gcode/feature/trinamic/M122.cpp> +<src/gcode/feature/trinamic/M906.cpp> +<src/gcode/feature/trinamic/M911-M914.cpp>
HAS_STEALTHCHOP         = src_filter=+<src/gcode/feature/trinamic/M569.cpp>
SR_LCD_3W_NL            = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
HAS_MOTOR_CURRENT_I2C   = SlowSoftI2CMaster
                          src_filter=+<src/feature/digipot>
HAS_TMC26X              = TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
                          src_filter=+<src/module/TMC26X.cpp>
HAS_L64XX               = Arduino-L6470@0.8.0
                          src_filter=+<src/libs/L64XX> +<src/module/stepper/L64xx.cpp> +<src/gcode/feature/L6470>
NEOPIXEL_LED            = Adafruit NeoPixel@1.5.0
                          src_filter=+<src/feature/leds/neopixel.cpp>
MAX6675_IS_MAX31865     = Adafruit MAX31865 library@~1.1.0
USES_LIQUIDCRYSTAL      = LiquidCrystal@1.5.0
USES_LIQUIDTWI2         = LiquidTWI2@1.2.7
HAS_WIRED_LCD           = src_filter=+<src/lcd/lcdprint.cpp>
HAS_MARLINUI_HD44780    = src_filter=+<src/lcd/HD44780>
HAS_MARLINUI_U8GLIB     = U8glib-HAL@~0.4.1
                          src_filter=+<src/lcd/dogm>
HAS_(FSMC|SPI)_TFT      = src_filter=+<src/HAL/STM32/tft> +<src/HAL/STM32F1/tft> +<src/lcd/tft_io>
HAS_FSMC_TFT            = src_filter=+<src/HAL/STM32/tft/tft_fsmc.cpp> +<src/HAL/STM32F1/tft/tft_fsmc.cpp>
HAS_SPI_TFT             = src_filter=+<src/HAL/STM32/tft/tft_spi.cpp> +<src/HAL/STM32F1/tft/tft_spi.cpp>
HAS_GRAPHICAL_TFT       = src_filter=+<src/lcd/tft>
DWIN_CREALITY_LCD       = src_filter=+<src/lcd/dwin>
IS_TFTGLCD_PANEL        = src_filter=+<src/lcd/TFTGLCD>
HAS_TOUCH_XPT2046       = src_filter=+<src/lcd/touch/touch_buttons.cpp>
HAS_LCD_MENU            = src_filter=+<src/lcd/menu>
HAS_GAMES               = src_filter=+<src/lcd/menu/game/game.cpp>
MARLIN_BRICKOUT         = src_filter=+<src/lcd/menu/game/brickout.cpp>
MARLIN_INVADERS         = src_filter=+<src/lcd/menu/game/invaders.cpp>
MARLIN_MAZE             = src_filter=+<src/lcd/menu/game/maze.cpp>
MARLIN_SNAKE            = src_filter=+<src/lcd/menu/game/snake.cpp>
HAS_MENU_BACKLASH       = src_filter=+<src/lcd/menu/menu_backlash.cpp>
HAS_MENU_BED_CORNERS    = src_filter=+<src/lcd/menu/menu_bed_corners.cpp>
LCD_BED_LEVELING        = src_filter=+<src/lcd/menu/menu_bed_leveling.cpp>
HAS_MENU_CANCELOBJECT   = src_filter=+<src/lcd/menu/menu_cancelobject.cpp>
HAS_MENU_DELTA_CALIBRATE = src_filter=+<src/lcd/menu/menu_delta_calibrate.cpp>
HAS_MENU_FILAMENT       = src_filter=+<src/lcd/menu/menu_filament.cpp>
LCD_INFO_MENU           = src_filter=+<src/lcd/menu/menu_info.cpp>
HAS_MENU_JOB_RECOVERY   = src_filter=+<src/lcd/menu/menu_job_recovery.cpp>
HAS_MENU_LED            = src_filter=+<src/lcd/menu/menu_led.cpp>
HAS_MENU_MEDIA          = src_filter=+<src/lcd/menu/menu_media.cpp>
HAS_MENU_MIXER          = src_filter=+<src/lcd/menu/menu_mixer.cpp>
HAS_MENU_MMU2           = src_filter=+<src/lcd/menu/menu_mmu2.cpp>
HAS_MENU_PASSWORD       = src_filter=+<src/lcd/menu/menu_password.cpp>
HAS_MENU_POWER_MONITOR  = src_filter=+<src/lcd/menu/menu_power_monitor.cpp>
HAS_MENU_CUTTER         = src_filter=+<src/lcd/menu/menu_spindle_laser.cpp>
HAS_MENU_TEMPERATURE    = src_filter=+<src/lcd/menu/menu_temperature.cpp>
HAS_MENU_TMC            = src_filter=+<src/lcd/menu/menu_tmc.cpp>
HAS_MENU_TOUCH_SCREEN   = src_filter=+<src/lcd/menu/menu_touch_screen.cpp>
HAS_MENU_UBL            = src_filter=+<src/lcd/menu/menu_ubl.cpp>
ANYCUBIC_LCD_CHIRON     = src_filter=+<src/lcd/extui/anycubic_chiron_lcd.cpp> +<src/lcd/extui/lib/anycubic_chiron>
ANYCUBIC_LCD_I3MEGA     = src_filter=+<src/lcd/extui/anycubic_i3mega_lcd.cpp> +<src/lcd/extui/lib/anycubic_i3mega>
HAS_DGUS_LCD            = src_filter=+<src/lcd/extui/lib/dgus> +<src/lcd/extui/dgus_lcd.cpp>
TOUCH_UI_FTDI_EVE       = src_filter=+<src/lcd/extui/lib/ftdi_eve_touch_ui>
EXTUI_EXAMPLE           = src_filter=+<src/lcd/extui/example.cpp>
MALYAN_LCD              = src_filter=+<src/lcd/extui/malyan_lcd.cpp>
USB_FLASH_DRIVE_SUPPORT = src_filter=+<src/sd/usb_flashdrive>
AUTO_BED_LEVELING_BILINEAR = src_filter=+<src/feature/bedlevel/abl>
AUTO_BED_LEVELING_(3POINT|(BI)?LINEAR) = src_filter=+<src/gcode/bedlevel/abl>
MESH_BED_LEVELING       = src_filter=+<src/feature/bedlevel/mbl> +<src/gcode/bedlevel/mbl>
AUTO_BED_LEVELING_UBL   = src_filter=+<src/feature/bedlevel/ubl> +<src/gcode/bedlevel/ubl>
BACKLASH_COMPENSATION   = src_filter=+<src/feature/backlash.cpp>
BARICUDA                = src_filter=+<src/feature/baricuda.cpp> +<src/gcode/feature/baricuda>
BINARY_FILE_TRANSFER    = src_filter=+<src/feature/binary_stream.cpp> +<src/libs/heatshrink>
BLTOUCH                 = src_filter=+<src/feature/bltouch.cpp>
CANCEL_OBJECTS          = src_filter=+<src/feature/cancel_object.cpp> +<src/gcode/feature/cancel>
CASE_LIGHT_ENABLE       = src_filter=+<src/feature/caselight.cpp> +<src/gcode/feature/caselight>
EXTERNAL_CLOSED_LOOP_CONTROLLER = src_filter=+<src/feature/closedloop.cpp> +<src/gcode/calibrate/M12.cpp>
USE_CONTROLLER_FAN      = src_filter=+<src/feature/controllerfan.cpp>
HAS_MOTOR_CURRENT_DAC   = src_filter=+<src/feature/dac>
DIRECT_STEPPING         = src_filter=+<src/feature/direct_stepping.cpp> +<src/gcode/motion/G6.cpp>
EMERGENCY_PARSER        = src_filter=+<src/feature/e_parser.cpp> -<src/gcode/control/M108_*.cpp>
I2C_POSITION_ENCODERS   = src_filter=+<src/feature/encoder_i2c.cpp>
IIC_BL24CXX_EEPROM      = src_filter=+<src/libs/BL24CXX.cpp>
HAS_SPI_FLASH           = src_filter=+<src/libs/W25Qxx.cpp>
HAS_FANMUX              = src_filter=+<src/feature/fanmux.cpp>
FILAMENT_WIDTH_SENSOR   = src_filter=+<src/feature/filwidth.cpp> +<src/gcode/feature/filwidth>
FWRETRACT               = src_filter=+<src/feature/fwretract.cpp> +<src/gcode/feature/fwretract>
HOST_ACTION_COMMANDS    = src_filter=+<src/feature/host_actions.cpp>
HOTEND_IDLE_TIMEOUT     = src_filter=+<src/feature/hotend_idle.cpp>
JOYSTICK                = src_filter=+<src/feature/joystick.cpp>
BLINKM                  = src_filter=+<src/feature/leds/blinkm.cpp>
HAS_COLOR_LEDS          = src_filter=+<src/feature/leds/leds.cpp> +<src/gcode/feature/leds/M150.cpp>
PCA9533                 = src_filter=+<src/feature/leds/pca9533.cpp>
PCA9632                 = src_filter=+<src/feature/leds/pca9632.cpp>
PRINTER_EVENT_LEDS      = src_filter=+<src/feature/leds/printer_event_leds.cpp>
TEMP_STAT_LEDS          = src_filter=+<src/feature/leds/tempstat.cpp>
MAX7219_DEBUG           = src_filter=+<src/feature/max7219.cpp> +<src/gcode/feature/leds/M7219.cpp>
MIXING_EXTRUDER         = src_filter=+<src/feature/mixing.cpp> +<src/gcode/feature/mixing/M163-M165.cpp>
PRUSA_MMU2              = src_filter=+<src/feature/mmu2> +<src/gcode/feature/prusa_MMU2>
PASSWORD_FEATURE        = src_filter=+<src/feature/password> +<src/gcode/feature/password>
ADVANCED_PAUSE_FEATURE  = src_filter=+<src/feature/pause.cpp> +<src/gcode/feature/pause/M600.cpp> +<src/gcode/feature/pause/M603.cpp>
AUTO_POWER_CONTROL      = src_filter=+<src/feature/power.cpp>
HAS_POWER_MONITOR       = src_filter=+<src/feature/power_monitor.cpp> +<src/gcode/feature/power_monitor>
POWER_LOSS_RECOVERY     = src_filter=+<src/feature/powerloss.cpp> +<src/gcode/feature/powerloss>
PROBE_TEMP_COMPENSATION = src_filter=+<src/feature/probe_temp_comp.cpp> +<src/gcode/calibrate/G76_M192_M871.cpp>
HAS_FILAMENT_SENSOR     = src_filter=+<src/feature/runout.cpp> +<src/gcode/feature/runout>
MK2_MULTIPLEXER         = src_filter=+<src/feature/snmm.cpp>
EXT_SOLENOID|MANUAL_SOLENOID_CONTROL = src_filter=+<src/feature/solenoid.cpp> +<src/gcode/control/M380_M381.cpp>
HAS_CUTTER              = src_filter=+<src/feature/spindle_laser.cpp> +<src/gcode/control/M3-M5.cpp>
EXPERIMENTAL_I2CBUS     = src_filter=+<src/feature/twibus.cpp> +<src/gcode/feature/i2c>
MECHANICAL_GANTRY_CAL.+ = src_filter=+<src/gcode/calibrate/G34.cpp>
Z_STEPPER_AUTO_ALIGN    = src_filter=+<src/feature/z_stepper_align.cpp> +<src/gcode/calibrate/G34_M422.cpp>
G26_MESH_VALIDATION     = src_filter=+<src/gcode/bedlevel/G26.cpp>
ASSISTED_TRAMMING       = src_filter=+<src/gcode/bedlevel/G35.cpp>
HAS_MESH                = src_filter=+<src/gcode/bedlevel/G42.cpp>
HAS_LEVELING            = src_filter=+<src/gcode/bedlevel/M420.cpp>
DELTA_AUTO_CALIBRATION  = src_filter=+<src/gcode/calibrate/G33.cpp>
CALIBRATION_GCODE       = src_filter=+<src/gcode/calibrate/G425.cpp>
Z_MIN_PROBE_REPEATABILITY_TEST = src_filter=+<src/gcode/calibrate/M48.cpp>
M100_FREE_MEMORY_WATCHER = src_filter=+<src/gcode/calibrate/M100.cpp>
BACKLASH_GCODE          = src_filter=+<src/gcode/calibrate/M425.cpp>
IS_KINEMATIC            = src_filter=+<src/gcode/calibrate/M665.cpp>
HAS_EXTRA_ENDSTOPS      = src_filter=+<src/gcode/calibrate/M666.cpp>
SKEW_CORRECTION_GCODE   = src_filter=+<src/gcode/calibrate/M852.cpp>
DIRECT_PIN_CONTROL      = src_filter=+<src/gcode/control/M42.cpp> +<src/gcode/control/M226.cpp>
PINS_DEBUGGING          = src_filter=+<src/gcode/config/M43.cpp>
NO_VOLUMETRICS          = src_filter=-<src/gcode/config/M200-M205.cpp>
HAS_MULTI_EXTRUDER      = src_filter=+<src/gcode/config/M217.cpp>
HAS_HOTEND_OFFSET       = src_filter=+<src/gcode/config/M218.cpp>
EDITABLE_SERVO_ANGLES   = src_filter=+<src/gcode/config/M281.cpp>
PIDTEMP                 = src_filter=+<src/gcode/config/M301.cpp>
PREVENT_COLD_EXTRUSION  = src_filter=+<src/gcode/config/M302.cpp>
PIDTEMPBED              = src_filter=+<src/gcode/config/M304.cpp>
HAS_USER_THERMISTORS    = src_filter=+<src/gcode/config/M305.cpp>
SD_ABORT_ON_ENDSTOP_HIT = src_filter=+<src/gcode/config/M540.cpp>
BAUD_RATE_GCODE         = src_filter=+<src/gcode/config/M575.cpp>
HAS_SMART_EFF_MOD       = src_filter=+<src/gcode/config/M672.cpp>
COOLANT_CONTROL         = src_filter=+<src/gcode/control/M7-M9.cpp>
HAS_SOFTWARE_ENDSTOPS   = src_filter=+<src/gcode/control/M211.cpp>
HAS_DUPLICATION_MODE    = src_filter=+<src/gcode/control/M605.cpp>
LIN_ADVANCE             = src_filter=+<src/gcode/feature/advance>
PHOTO_GCODE             = src_filter=+<src/gcode/feature/camera>
CONTROLLER_FAN_EDITABLE = src_filter=+<src/gcode/feature/controllerfan>
GCODE_MACROS            = src_filter=+<src/gcode/feature/macro>
GRADIENT_MIX            = src_filter=+<src/gcode/feature/mixing/M166.cpp>
HAS_SAVED_POSITIONS     = src_filter=+<src/gcode/feature/pause/G60.cpp> +<src/gcode/feature/pause/G61.cpp>
PARK_HEAD_ON_PAUSE      = src_filter=+<src/gcode/feature/pause/M125.cpp>
FILAMENT_LOAD_UNLOAD_GCODES = src_filter=+<src/gcode/feature/pause/M701_M702.cpp>
CNC_WORKSPACE_PLANES    = src_filter=+<src/gcode/geometry/G17-G19.cpp>
CNC_COORDINATE_SYSTEMS  = src_filter=+<src/gcode/geometry/G53-G59.cpp>
HAS_M206_COMMAND        = src_filter=+<src/gcode/geometry/M206_M428.cpp>
EXPECTED_PRINTER_CHECK  = src_filter=+<src/gcode/host/M16.cpp>
HOST_KEEPALIVE_FEATURE  = src_filter=+<src/gcode/host/M113.cpp>
REPETIER_GCODE_M360     = src_filter=+<src/gcode/host/M360.cpp>
HAS_GCODE_M876          = src_filter=+<src/gcode/host/M876.cpp>
HAS_RESUME_CONTINUE     = src_filter=+<src/gcode/lcd/M0_M1.cpp>
HAS_LCD_CONTRAST        = src_filter=+<src/gcode/lcd/M250.cpp>
LCD_SET_PROGRESS_MANUALLY = src_filter=+<src/gcode/lcd/M73.cpp>
TOUCH_SCREEN_CALIBRATION = src_filter=+<src/gcode/lcd/M995.cpp>
ARC_SUPPORT             = src_filter=+<src/gcode/motion/G2_G3.cpp>
GCODE_MOTION_MODES      = src_filter=+<src/gcode/motion/G80.cpp>
BABYSTEPPING            = src_filter=+<src/gcode/motion/M290.cpp> +<src/feature/babystep.cpp>
Z_PROBE_SLED            = src_filter=+<src/gcode/probe/G31_G32.cpp>
G38_PROBE_TARGET        = src_filter=+<src/gcode/probe/G38.cpp>
MAGNETIC_PARKING_EXTRUDER = src_filter=+<src/gcode/probe/M951.cpp>
SDSUPPORT               = src_filter=+<src/gcode/sd>
HAS_EXTRUDERS           = src_filter=+<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp>
AUTO_REPORT_TEMPERATURES = src_filter=+<src/gcode/temp/M155.cpp>
INCH_MODE_SUPPORT       = src_filter=+<src/gcode/units/G20_G21.cpp>
TEMPERATURE_UNITS_SUPPORT = src_filter=+<src/gcode/units/M149.cpp>
NEED_HEX_PRINT          = src_filter=+<src/libs/hex_print.cpp>
NEED_LSF                = src_filter=+<src/libs/least_squares_fit.cpp>
NOZZLE_PARK_FEATURE     = src_filter=+<src/libs/nozzle.cpp> +<src/gcode/feature/pause/G27.cpp>
NOZZLE_CLEAN_FEATURE    = src_filter=+<src/libs/nozzle.cpp> +<src/gcode/feature/clean>
DELTA                   = src_filter=+<src/module/delta.cpp> +<src/gcode/calibrate/M666.cpp>
BEZIER_CURVE_SUPPORT    = src_filter=+<src/module/planner_bezier.cpp> +<src/gcode/motion/G5.cpp>
PRINTCOUNTER            = src_filter=+<src/module/printcounter.cpp>
HAS_BED_PROBE           = src_filter=+<src/module/probe.cpp> +<src/gcode/probe/G30.cpp> +<src/gcode/probe/M401_M402.cpp> +<src/gcode/probe/M851.cpp>
IS_SCARA                = src_filter=+<src/module/scara.cpp>
MORGAN_SCARA            = src_filter=+<src/gcode/scara>
(ESP3D_)?WIFISUPPORT    = AsyncTCP, ESP Async WebServer
  ESP3DLib=https://github.com/luc-github/ESP3DLib.git
  arduinoWebSockets=https://github.com/Links2004/arduinoWebSockets.git
  ESP32SSDP=https://github.com/luc-github/ESP32SSDP.git
  lib_ignore=ESPAsyncTCP

#
# Default values apply to all 'env:' prefixed environments
#
[env]
framework     = arduino
extra_scripts = ${common.extra_scripts}
build_flags   = ${common.build_flags}
lib_deps      = ${common.lib_deps}
monitor_speed = 250000
monitor_flags =
  --quiet
  --echo
  --eol
    LF
  --filter
    colorize
  --filter
    time

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

#################################
#                               #
#       AVR Architecture        #
#                               #
#################################

#
# AVR (8-bit) Common Environment values
#
[common_avr8]
board_build.f_cpu = 16000000L
src_filter        = ${common.default_src_filter} +<src/HAL/AVR>

#
# ATmega2560
#
[env:mega2560]
platform            = atmelavr
extends             = common_avr8
board               = megaatmega2560

#
# ATmega2560 with extended pins 70-85 defined
# BOARD_BQ_ZUM_MEGA_3D
# BOARD_ULTIMAIN_2
# BOARD_MIGHTYBOARD_REVE
# BOARD_EINSTART_S
#
[env:mega2560ext]
platform            = atmelavr
extends             = env:mega2560
board               = megaatmega2560
board_build.variant = megaextendedpins
extra_scripts       = ${common.extra_scripts}
                      pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py

#
# ATmega1280
#
[env:mega1280]
platform      = atmelavr
extends       = common_avr8
board         = megaatmega1280

#
# MightyBoard ATmega2560 (MegaCore 100 pin boards variants)
#
[env:MightyBoard1280]
platform      = atmelavr
extends       = common_avr8
board         = ATmega1280
upload_speed  = 57600

#
# MightyBoard ATmega2560 (MegaCore 100 pin boards variants)
#
[env:MightyBoard2560]
platform      = atmelavr
extends       = common_avr8
board         = ATmega2560
upload_protocol = wiring
upload_speed  = 57600
board_upload.maximum_size = 253952

#
# RAMBo
#
[env:rambo]
platform      = atmelavr
extends       = common_avr8
board         = reprap_rambo

#
# FYSETC F6 V1.3
#
[env:FYSETC_F6_13]
platform      = atmelavr
extends       = common_avr8
board         = fysetc_f6_13

#
# FYSETC F6 V1.4
#
[env:FYSETC_F6_14]
platform      = atmelavr
extends       = common_avr8
board         = fysetc_f6_14

#
# Sanguinololu (ATmega644p)
#
[env:sanguino644p]
platform      = atmelavr
extends       = common_avr8
board         = sanguino_atmega644p

#
# Sanguinololu (ATmega1284p)
#
[env:sanguino1284p]
platform      = atmelavr
extends       = common_avr8
board         = sanguino_atmega1284p
board_upload.maximum_size = 126976

#
# Melzi and clones (ATmega1284p)
#
[env:melzi]
platform      = atmelavr
extends       = common_avr8
board         = sanguino_atmega1284p
upload_speed  = 57600
board_upload.maximum_size = 126976

#
# Melzi and clones (Optiboot bootloader)
#
[env:melzi_optiboot]
platform      = atmelavr
extends       = common_avr8
board         = sanguino_atmega1284p
upload_speed  = 115200

#
# Melzi and clones (Zonestar Melzi2 with tuned flags)
#
[env:melzi_optimized]
platform      = atmelavr
extends       = env:melzi_optiboot
build_flags   = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues
build_unflags = -g -ggdb

#
# AT90USB1286 boards using CDC bootloader
# - BRAINWAVE
# - BRAINWAVE_PRO
# - SAV_MKI
# - TEENSYLU
#
[env:at90usb1286_cdc]
platform      = teensy
extends       = common_avr8
board         = at90usb1286
lib_ignore    = ${env:common_avr8.lib_ignore} Teensy_ADC

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

#################################
#                               #
#       DUE Architecture        #
#                               #
#################################

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

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

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

#
# Archim SAM
#
[common_DUE_archim]
platform      = atmelsam
extends       = env:DUE
board         = archim
build_flags   = ${common.build_flags}
  -DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSBCON
board_build.variants_dir = buildroot/share/PlatformIO/variants/
extra_scripts = ${common.extra_scripts}
  Marlin/src/HAL/DUE/upload_extra_script.py

[env:DUE_archim]
platform      = ${common_DUE_archim.platform}
extends       = common_DUE_archim

# Used when WATCHDOG_RESET_MANUAL is enabled
[env:DUE_archim_debug]
platform      = ${common_DUE_archim.platform}
extends       = common_DUE_archim
build_flags   = ${common_DUE_archim.build_flags} -funwind-tables -mpoke-function-name

#################################
#                               #
#      SAMD51 Architecture      #
#                               #
#################################

#
# 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
build_unflags  = -std=gnu++11
src_filter     = ${common.default_src_filter} +<src/HAL/SAMD51>
lib_deps       = ${common.lib_deps}
  SoftwareSerialM
  Adafruit SPIFlash
custom_marlin.SDSUPPORT = SdFat - Adafruit Fork
debug_tool     = jlink

#################################
#                               #
#     LPC176x Architecture      #
#                               #
#################################

#
# NXP LPC176x ARM Cortex-M3
#
[common_LPC]
platform          = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.3.zip
platform_packages = framework-arduino-lpc176x@^0.2.5
board             = nxp_lpc1768
lib_ldf_mode      = off
lib_compat_mode   = strict
extra_scripts     = ${common.extra_scripts}
  Marlin/src/HAL/LPC1768/upload_extra_script.py
src_filter        = ${common.default_src_filter} +<src/HAL/LPC1768> +<src/HAL/shared/backtrace>
lib_deps          = ${common.lib_deps}
  Servo
custom_marlin.USES_LIQUIDCRYSTAL = LiquidCrystal@1.0.0
custom_marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/1.5.0.zip
build_flags       = ${common.build_flags} -DU8G_HAL_LINKS -IMarlin/src/HAL/LPC1768/include -IMarlin/src/HAL/LPC1768/u8g
  # debug options for backtrace
  #-funwind-tables
  #-mpoke-function-name

#
# NXP LPC176x ARM Cortex-M3
#
[env:LPC1768]
platform  = ${common_LPC.platform}
extends   = common_LPC
board     = nxp_lpc1768

[env:LPC1769]
platform  = ${common_LPC.platform}
extends   = common_LPC
board     = nxp_lpc1769

#################################
#                               #
#      STM32 Architecture       #
#                               #
#################################

#
# HAL/STM32 Base Environment values
#
[common_stm32]
platform      = ststm32@~8.0
build_flags   = ${common.build_flags}
  -std=gnu++14
  -DUSBCON -DUSBD_USE_CDC
  -DTIM_IRQ_PRIO=13
build_unflags = -std=gnu++11
src_filter    = ${common.default_src_filter} +<src/HAL/STM32> +<src/HAL/shared/backtrace>

#
# HAL/STM32F1 Common Environment values
#
[common_stm32f1]
platform      = ststm32@~6.1
build_flags   = !python Marlin/src/HAL/STM32F1/build_flags.py
  ${common.build_flags} -std=gnu++14 -DHAVE_SW_SERIAL
build_unflags = -std=gnu11 -std=gnu++11
src_filter    = ${common.default_src_filter} +<src/HAL/STM32F1>
lib_ignore    = SPI
lib_deps      = ${common.lib_deps}
  SoftwareSerialM

#
# STM32F103RC
#
[env:STM32F103RC]
platform          = ${common_stm32f1.platform}
extends           = common_stm32f1
board             = genericSTM32F103RC
platform_packages = tool-stm32duino
monitor_speed     = 115200

#
# MEEB_3DP (STM32F103RCT6 with 512K)
#
[env:STM32F103RC_meeb]
platform          = ${common_stm32f1.platform}
extends           = common_stm32f1
board             = MEEB_3DP
platform_packages = tool-stm32duino
build_flags       = ${common_stm32f1.build_flags}
                    -DDEBUG_LEVEL=0
                    -DSS_TIMER=4
                    -DSTM32_FLASH_SIZE=512
                    -DHSE_VALUE=12000000U
                    -DUSE_USB_COMPOSITE
                    -DVECT_TAB_OFFSET=0x2000
                    -DGENERIC_BOOTLOADER
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/STM32F1_create_variant.py
  buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py
lib_deps          = ${common.lib_deps}
  SoftwareSerialM
  USBComposite for STM32F1@0.91
custom_marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/ccccmagicboy/Adafruit_NeoPixel#meeb_3dp_use
debug_tool        = stlink
upload_protocol   = dfu

#
# STM32F103RC_fysetc
#
[env:STM32F103RC_fysetc]
platform          = ${common_stm32f1.platform}
extends           = env:STM32F103RC
extra_scripts     = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py
build_flags       = ${common_stm32f1.build_flags} -DDEBUG_LEVEL=0
lib_ldf_mode      = chain
debug_tool        = stlink
upload_protocol   = serial

#
# BigTree SKR Mini V1.1 / SKR mini E3 / SKR E3 DIP (STM32F103RCT6 ARM Cortex-M3)
#
#   STM32F103RC_btt ............. RCT6 with 256K
#   STM32F103RC_btt_USB ......... RCT6 with 256K (USB mass storage)
#   STM32F103RC_btt_512K ........ RCT6 with 512K
#   STM32F103RC_btt_512K_USB .... RCT6 with 512K (USB mass storage)
#
# WARNING! If you have an SKR Mini v1.1 or an SKR Mini E3 1.0 / 1.2 / 2.0 / DIP
# and experience a printer freeze, re-flash Marlin using the regular (non-512K)
# build option. 256K chips may be re-branded 512K chips, but this means the
# upper 256K is sketchy, and failure is very likely.
#

[env:STM32F103RC_btt]
platform          = ${common_stm32f1.platform}
extends           = env:STM32F103RC
extra_scripts     = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
build_flags       = ${common_stm32f1.build_flags}
  -DDEBUG_LEVEL=0 -DSS_TIMER=4
monitor_speed     = 115200

[env:STM32F103RC_btt_USB]
platform          = ${common_stm32f1.platform}
extends           = env:STM32F103RC_btt
build_flags       = ${env:STM32F103RC_btt.build_flags} -DUSE_USB_COMPOSITE
lib_deps          = ${env:STM32F103RC_btt.lib_deps}
  USBComposite for STM32F1@0.91

[env:STM32F103RC_btt_512K]
platform          = ${common_stm32f1.platform}
extends           = env:STM32F103RC_btt
board_upload.maximum_size=524288
build_flags       = ${env:STM32F103RC_btt.build_flags} -DSTM32_FLASH_SIZE=512

[env:STM32F103RC_btt_512K_USB]
platform          = ${common_stm32f1.platform}
extends           = env:STM32F103RC_btt_512K
build_flags       = ${env:STM32F103RC_btt_512K.build_flags} -DUSE_USB_COMPOSITE
lib_deps          = ${env:STM32F103RC_btt_512K.lib_deps}
  USBComposite for STM32F1@0.91

#
# STM32F103RE
#
[env:STM32F103RE]
platform          = ${common_stm32f1.platform}
extends           = common_stm32f1
board             = genericSTM32F103RE
platform_packages = tool-stm32duino
monitor_speed     = 115200

#
#   STM32F103RE_btt ............. RET6
#   STM32F103RE_btt_USB ......... RET6 (USB mass storage)
#
[env:STM32F103RE_btt]
platform          = ${common_stm32f1.platform}
extends           = env:STM32F103RE
extra_scripts     = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/STM32F103RE_SKR_E3_DIP.py
build_flags       = ${common_stm32f1.build_flags} -DDEBUG_LEVEL=0 -DSS_TIMER=4
debug_tool        = stlink
upload_protocol   = stlink

[env:STM32F103RE_btt_USB]
platform          = ${common_stm32f1.platform}
extends           = env:STM32F103RE_btt
build_flags       = ${env:STM32F103RE_btt.build_flags} -DUSE_USB_COMPOSITE
lib_deps          = ${common_stm32f1.lib_deps}
  USBComposite for STM32F1@0.91

#
# STM32F4 with STM32GENERIC
#
[env:STM32F4]
platform      = ${common_stm32.platform}
board         = disco_f407vg
build_flags   = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DSTM32F4 -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB -DHAL_IWDG_MODULE_ENABLED
src_filter    = ${common.default_src_filter} +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F7>

#
# STM32F7 with STM32GENERIC
#
[env:STM32F7]
platform      = ${common_stm32.platform}
board         = remram_v1
build_flags   = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DSTM32F7 -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB -DHAL_IWDG_MODULE_ENABLED
src_filter    = ${common.default_src_filter} +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F4>

#
# ST NUCLEO-F767ZI Development Board
# This environment is for testing purposes prior to control boards
# being readily available based on STM32F7 MCUs
#
[env:NUCLEO_F767ZI]
platform      = ${common_stm32.platform}
extends       = common_stm32
board         = nucleo_f767zi
build_flags   = ${common_stm32.build_flags} -DTIMER_SERIAL=TIM9

#
# ARMED (STM32)
#
[env:ARMED]
platform      = ${common_stm32.platform}
extends       = common_stm32
board         = armed_v1
build_flags   = ${common_stm32.build_flags}
  -O2 -ffreestanding -fsigned-char -fno-move-loop-invariants -fno-strict-aliasing

#
# Geeetech GTM32 (STM32F103VET6)
#
[env:STM32F103VE_GTM32]
platform          = ${common_stm32f1.platform}
extends           = common_stm32f1
board             = genericSTM32F103VE
build_flags       = ${common_stm32f1.build_flags}
  -ffunction-sections -fdata-sections -nostdlib -MMD
  -DMCU_STM32F103VE -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1 -DBOARD_generic_stm32f103v
  -DDEBUG_LEVEL=DEBUG_NONE -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DVECT_TAB_ADDR=0x8000000
  -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
upload_protocol   = serial

#
# Longer 3D board in Alfawise U20 (STM32F103VET6)
#
[env:STM32F103VE_longer]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = genericSTM32F103VE
extra_scripts = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py
build_flags   = ${common_stm32f1.build_flags}
  -DMCU_STM32F103VE -DSTM32F1xx -USERIAL_USB -DU20 -DTS_V12
build_unflags = ${common_stm32f1.build_unflags}
  -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
lib_ignore    = ${common_stm32f1.lib_ignore}

#
# MKS Robin Mini (STM32F103VET6)
#
[env:mks_robin_mini]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = genericSTM32F103VE
extra_scripts = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/mks_robin_mini.py
build_flags   = ${common_stm32f1.build_flags}
  -DMCU_STM32F103VE

#
# MKS Robin Nano (STM32F103VET6)
#
[env:mks_robin_nano35]
platform        = ${common_stm32f1.platform}
extends         = common_stm32f1
board           = genericSTM32F103VE
platform_packages = tool-stm32duino
extra_scripts   = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/mks_robin_nano35.py
build_flags     = ${common_stm32f1.build_flags}
  -DMCU_STM32F103VE -DSS_TIMER=4
debug_tool      = jlink
upload_protocol = jlink

#
# MKS Robin (STM32F103ZET6)
#
[env:mks_robin]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = genericSTM32F103ZE
extra_scripts = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/mks_robin.py
build_flags   = ${common_stm32f1.build_flags}
  -DSS_TIMER=4 -DSTM32_XL_DENSITY

# MKS Robin (STM32F103ZET6)
# Uses HAL STM32 to support Marlin UI for TFT screen with optional touch panel
#
[env:mks_robin_stm32]
platform             = ${common_stm32.platform}
extends              = common_stm32
board                = genericSTM32F103ZE
board_build.core     = stm32
board_build.variant  = MARLIN_F103Zx
board_build.ldscript = ldscript.ld
board_build.offset   = 0x7000
board_build.firmware = Robin.bin
build_flags          = ${common_stm32.build_flags}
  -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8
build_unflags        = ${common_stm32.build_unflags}
 -DUSBCON -DUSBD_USE_CDC
extra_scripts        = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
  buildroot/share/PlatformIO/scripts/stm32_bootloader.py
  buildroot/share/PlatformIO/scripts/mks_encrypt.py
lib_deps             =

#
# MKS Robin Pro (STM32F103ZET6)
#
[env:mks_robin_pro]
platform      = ${common_stm32f1.platform}
extends       = env:mks_robin
extra_scripts = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/mks_robin_pro.py

#
# TRIGORILLA PRO (STM32F103ZET6)
#
[env:trigorilla_pro]
platform      = ${common_stm32f1.platform}
extends       = env:mks_robin
extra_scripts = ${common.extra_scripts}

#
# MKS Robin E3D (STM32F103RCT6) and
# MKS Robin E3 with TMC2209
#
[env:mks_robin_e3]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = genericSTM32F103RC
platform_packages = tool-stm32duino
extra_scripts = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/mks_robin_e3.py
build_flags   = ${common_stm32f1.build_flags}
  -DDEBUG_LEVEL=0 -DSS_TIMER=4

#
# MKS Robin E3p (STM32F103VET6)
#  - LVGL UI
#
[env:mks_robin_e3p]
platform        = ${common_stm32f1.platform}
extends         = common_stm32f1
board           = genericSTM32F103VE
platform_packages = tool-stm32duino
extra_scripts   = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/mks_robin_e3p.py
build_flags     = ${common_stm32f1.build_flags}
  -DMCU_STM32F103VE -DSS_TIMER=4
debug_tool      = jlink
upload_protocol = jlink

#
# MKS Robin Lite/Lite2 (STM32F103RCT6)
#
[env:mks_robin_lite]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = genericSTM32F103RC
extra_scripts = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/mks_robin_lite.py

#
# MKS ROBIN LITE3 (STM32F103RCT6)
#
[env:mks_robin_lite3]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = genericSTM32F103RC
extra_scripts = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/mks_robin_lite3.py

#
# JGAurora A5S A1 (STM32F103ZET6)
#
[env:jgaurora_a5s_a1]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = genericSTM32F103ZE
extra_scripts = ${common.extra_scripts}
  buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py
build_flags   = ${common_stm32f1.build_flags}
  -DSTM32F1xx -DSTM32_XL_DENSITY

#
# Malyan M200 (STM32F103CB)
#
[env:STM32F103CB_malyan]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = malyanM200
build_flags   = ${common_stm32f1.build_flags}
  -DMCU_STM32F103CB -D__STM32F1__=1 -std=c++1y -DSERIAL_USB -ffunction-sections -fdata-sections
  -Wl,--gc-sections -DDEBUG_LEVEL=0 -D__MARLIN_FIRMWARE__
lib_ignore    = ${common_stm32f1.lib_ignore}
  SoftwareSerialM

#
# Malyan M200 v2 (STM32F070RB)
#
[env:STM32F070RB_malyan]
platform    = ${common_stm32.platform}
extends     = common_stm32
board       = malyanM200v2
build_flags = ${common_stm32.build_flags} -DHAL_PCD_MODULE_ENABLED
  -O2 -ffreestanding -fsigned-char -fno-move-loop-invariants -fno-strict-aliasing
  -DCUSTOM_STARTUP_FILE

#
# Malyan M200 v2 (STM32F070CB)
#
[env:STM32F070CB_malyan]
platform    = ${common_stm32.platform}
extends     = common_stm32
board       = malyanm200_f070cb
build_flags = ${common_stm32.build_flags}
  -DHAL_PCD_MODULE_ENABLED -DDISABLE_GENERIC_SERIALUSB -DHAL_UART_MODULE_ENABLED -DCUSTOM_STARTUP_FILE

#
# Malyan M300 (STM32F070CB)
#
[env:malyan_M300]
platform    = ${common_stm32.platform}
extends     = common_stm32
board       = malyanm300_f070cb
build_flags = ${common_stm32.build_flags}
  -DHAL_PCD_MODULE_ENABLED -DDISABLE_GENERIC_SERIALUSB -DHAL_UART_MODULE_ENABLED
src_filter  = ${common.default_src_filter} +<src/HAL/STM32>

#
# Chitu boards like Tronxy X5s (STM32F103ZET6)
#
[env:chitu_f103]
platform      = ${common_stm32f1.platform}
extends       = common_stm32f1
board         = CHITU_F103
extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-dependencies.py
  pre:buildroot/share/PlatformIO/scripts/STM32F1_create_variant.py
  buildroot/share/PlatformIO/scripts/chitu_crypt.py
build_flags   = ${common_stm32f1.build_flags}
  -DSTM32F1xx -DSTM32_XL_DENSITY
build_unflags = ${common_stm32f1.build_unflags}
  -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG= -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6

#
# Some Chitu V5 boards have a problem with GPIO init.
# Use this target if G28 or G29 are always failing.
#
[env:chitu_v5_gpio_init]
platform      = ${common_stm32f1.platform}
extends       = env:chitu_f103
build_flags   = ${env:chitu_f103.build_flags} -DCHITU_V5_Z_MIN_BUGFIX

#
# Creality (STM32F103RET6)
#
[env:STM32F103RET6_creality]
platform        = ${common_stm32f1.platform}
extends         = common_stm32f1
board           = genericSTM32F103RE
build_flags     = !python Marlin/src/HAL/STM32F1/build_flags.py
  ${common.build_flags} -std=gnu++14 -DSTM32_XL_DENSITY -DTEMP_TIMER_CHAN=4
extra_scripts   = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/random-bin.py
  buildroot/share/PlatformIO/scripts/creality.py
lib_ignore      = ${common_stm32f1.lib_ignore}
debug_tool      = jlink
upload_protocol = jlink
monitor_speed   = 115200

#
# STM32F401VE
# 'STEVAL-3DP001V1' STM32F401VE board - https://www.st.com/en/evaluation-tools/steval-3dp001v1.html
#
[env:STM32F401VE_STEVAL]
platform          = ${common_stm32.platform}
extends           = common_stm32
board             = STEVAL_STM32F401VE
build_flags       = ${common_stm32.build_flags}
  -DARDUINO_STEVAL -DSTM32F401xE
  -DDISABLE_GENERIC_SERIALUSB -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
  buildroot/share/PlatformIO/scripts/STEVAL__F401XX.py

#
# FLYF407ZG
#
[env:FLYF407ZG]
platform          = ${common_stm32.platform}
extends           = common_stm32
board             = FLYF407ZG
build_flags       = ${common_stm32.build_flags}
  -DVECT_TAB_OFFSET=0x8000
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py

#
# FLY MINI(stm32f103rct6)
#
[env:FLY_MINI]
platform          = ${common_stm32f1.platform}
extends           = common_stm32f1
board             = genericSTM32F103RC
platform_packages = tool-stm32duino
extra_scripts     = ${common.extra_scripts}
 buildroot/share/PlatformIO/scripts/fly_mini.py
build_flags       = ${common_stm32f1.build_flags}
 -DDEBUG_LEVEL=0 -DSS_TIMER=4

#
# FYSETC S6 (STM32F446VET6 ARM Cortex-M4)
#
[env:FYSETC_S6]
platform          = ${common_stm32.platform}
extends           = common_stm32
platform_packages = tool-stm32duino
board             = marlin_fysetc_s6
build_flags       = ${common_stm32.build_flags}
  -DVECT_TAB_OFFSET=0x10000
  -DHAL_PCD_MODULE_ENABLED
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
debug_tool        = stlink
upload_protocol   = dfu
upload_command    = dfu-util -a 0 -s 0x08010000:leave -D "$SOURCE"

#
# STM32F407VET6 with RAMPS-like shield
# 'Black' STM32F407VET6 board - https://wiki.stm32duino.com/index.php?title=STM32F407
# Shield - https://github.com/jmz52/Hardware
#
[env:STM32F407VE_black]
platform          = ${common_stm32.platform}
extends           = common_stm32
board             = blackSTM32F407VET6
build_flags       = ${common_stm32.build_flags}
  -DARDUINO_BLACK_F407VE
  -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py

#
# BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4)
#
[env:BIGTREE_SKR_PRO]
platform          = ${common_stm32.platform}
extends           = common_stm32
board             = BigTree_SKR_Pro
build_flags       = ${common_stm32.build_flags}
  -DSTM32F407_5ZX -DVECT_TAB_OFFSET=0x8000
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
#upload_protocol   = stlink
#upload_command    = "$PROJECT_PACKAGES_DIR/tool-stm32duino/stlink/ST-LINK_CLI.exe" -c SWD -P "$BUILD_DIR/firmware.bin" 0x8008000 -Rst -Run
debug_tool        = stlink
debug_init_break  =

#
# Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
#
[env:BIGTREE_GTR_V1_0]
platform          = ${common_stm32.platform}
extends           = common_stm32
board             = BigTree_GTR_v1
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
build_flags       = ${common_stm32.build_flags}
  -DSTM32F407IX -DVECT_TAB_OFFSET=0x8000

#
# BigTreeTech BTT002 V1.0 (STM32F407VGT6 ARM Cortex-M4)
#
[env:BIGTREE_BTT002]
platform          = ${common_stm32.platform}
extends           = common_stm32
board             = BigTree_Btt002
build_flags       = ${common_stm32.build_flags}
  -DSTM32F407_5VX -DVECT_TAB_OFFSET=0x8000
  -DHAVE_HWSERIAL2
  -DHAVE_HWSERIAL3
  -DPIN_SERIAL2_RX=PD_6
  -DPIN_SERIAL2_TX=PD_5
extra_scripts     = ${common.extra_scripts}
  pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py

#
# Lerdge base
#
[lerdge_common]
platform           = ${common_stm32.platform}
extends            = common_stm32
board              = LERDGE
board_build.offset = 0x10000
extra_scripts      = ${common.extra_scripts}
                     pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py
                     buildroot/share/PlatformIO/scripts/stm32_bootloader.py
                     buildroot/share/PlatformIO/scripts/lerdge.py
build_flags        = ${common_stm32.build_flags}
  -DSTM32F4 -DSTM32F4xx -DTARGET_STM32F4
  -DDISABLE_GENERIC_SERIALUSB -DARDUINO_ARCH_STM32 -DARDUINO_LERDGE
  -DTRANSFER_CLOCK_DIV=8 -DHAL_SRAM_MODULE_ENABLED
build_unflags      = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483

#
# Lerdge X
#
[env:LERDGEX]
extends              = lerdge_common
board_build.firmware = Lerdge_X_firmware_force.bin

#
# Lerdge S
#
[env:LERDGES]
extends              = lerdge_common
board_build.firmware = Lerdge_firmware_force.bin

#
# Lerdge K
#
[env:LERDGEK]
extends              = lerdge_common
board_build.firmware = Lerdge_K_firmware_force.bin
build_flags          = ${lerdge_common.build_flags}
  -DLERDGEK

#
# RUMBA32
#
[env:rumba32]
platform      = ${common_stm32.platform}
extends       = common_stm32
build_flags   = ${common_stm32.build_flags}
  -Os
  -DHAL_PCD_MODULE_ENABLED
  -DDISABLE_GENERIC_SERIALUSB
  -DHAL_UART_MODULE_ENABLED
  -DTIMER_SERIAL=TIM9
board         = rumba32_f446ve
upload_protocol = dfu
monitor_speed = 500000

#################################
#                               #
#      Other Architectures      #
#                               #
#################################

#
# Espressif ESP32
#
[env:esp32]
platform      = espressif32@1.11.2
board         = esp32dev
build_flags   = ${common.build_flags} -DCORE_DEBUG_LEVEL=0
src_filter    = ${common.default_src_filter} +<src/HAL/ESP32>
upload_speed  = 115200
#upload_port   = marlinesp.local
#board_build.flash_mode = qio

#
# Teensy 3.1 / 3.2 (ARM Cortex-M4)
#
[env:teensy31]
platform      = teensy
board         = teensy31
src_filter    = ${common.default_src_filter} +<src/HAL/TEENSY31_32>

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

[env:teensy36]
platform      = teensy
board         = teensy36
src_filter    = ${common.default_src_filter} +<src/HAL/TEENSY35_36>

#
# Teensy 4.0 / 4.1 (ARM Cortex-M7)
#
[env:teensy41]
platform      = teensy
board         = teensy41
src_filter    = ${common.default_src_filter} +<src/HAL/TEENSY40_41>

#
# 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/LINUX/include
build_unflags   = -Wall
lib_ldf_mode    = off
lib_deps        =
src_filter      = ${common.default_src_filter} +<src/HAL/LINUX>

#
# Just print the dependency tree
#
[env:include_tree]
platform    = atmelavr
board       = megaatmega2560
build_flags = -c -H -std=gnu++11 -Wall -Os -D__MARLIN_FIRMWARE__
src_filter  = +<src/MarlinCore.cpp>

Source file to reproduce issue:

Insert here...

Additional info

maxgerhardt commented 3 years ago

What does pio --version return in cmd.exe and VSCode CLI?

zhpt commented 3 years ago

What does pio --version return in cmd.exe and VSCode CLI? cmd return "PlatformIO Core, version 5.1.1" vscode terminal also return this "PlatformIO Core, version 5.1.1" but vscode PlatformIO IDE version is v2.3.2 cmd vscode vscode ide

maxgerhardt commented 3 years ago

but vscode PlatformIO IDE version is v2.3.2

Yes, the extension version is different from the core version, that's expected.

What about that Microsoft_PowerShell_profile.ps1 error? You have custom profile scripts for the shell, and that might influence it?

Also, can you, in the cmd.exe, do a pio upgrade --dev and try pio run again? I don't yet see why it would work in the IDE but on in the cmd.exe.

maxgerhardt commented 3 years ago

Oh wait, I take that back. The path of the project folder in H:..... seems to be extremely long. Windows has limitations on maximum path length.

Please move the folder to a shorter path, like H:\Marlin, and try pio run in there from cmd.exe. Does it work now?

zhpt commented 3 years ago

@maxgerhardt Thank you for your help. Follow your step is compiled successful on cmd.exe. And this error mainly beacuse my program modified the platformio.ini file unexpectedly . Thanks again.