Skip to content
Snippets Groups Projects
platformio.ini 58.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • #
    # 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
    
    MKS-Sean's avatar
    MKS-Sean committed
    default_envs = mks_robin_nano35
    
    include_dir  = Marlin
    
    #
    # The 'common' values are used for most Marlin builds
    #
    
    [common]
    default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<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_language.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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/lcd/menu/menu_tramming.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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/lcd/touch/touch_buttons.cpp>
      -<src/sd/usb_flashdrive/lib-uhs2> -<src/sd/usb_flashdrive/lib-uhs3>
    
      -<src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp>
      -<src/sd/cardreader.cpp> -<src/sd/Sd2Card.cpp> -<src/sd/SdBaseFile.cpp> -<src/sd/SdFatUtil.cpp> -<src/sd/SdFile.cpp> -<src/sd/SdVolume.cpp> -<src/gcode/sd>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/HAL/shared/backtrace>
    
      -<src/HAL/shared/eeprom_if_i2c.cpp>
      -<src/HAL/shared/eeprom_if_spi.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<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/ethernet.cpp> -<src/gcode/feature/network/M552-M554.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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<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/meatpack.cpp>
    
      -<src/feature/mixing.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/feature/mmu/mmu.cpp>
      -<src/feature/mmu/mmu2.cpp> -<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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/feature/repeat.cpp>
    
      -<src/feature/runout.cpp> -<src/gcode/feature/runout>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<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/tramming.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/feature/bedlevel/bedlevel.cpp>
    
      -<src/gcode/calibrate/G33.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/gcode/calibrate/G34.cpp>
    
      -<src/gcode/calibrate/G34_M422.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/gcode/config/M301.cpp>
    
      -<src/gcode/config/M302.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/gcode/config/M304.cpp>
    
      -<src/gcode/config/M305.cpp>
      -<src/gcode/config/M540.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/gcode/config/M575.cpp>
      -<src/gcode/config/M672.cpp>
    
      -<src/gcode/control/M7-M9.cpp>
      -<src/gcode/control/M211.cpp>
    
      -<src/gcode/control/M350_M351.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>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/gcode/sd/M32.cpp>
      -<src/gcode/sd/M808.cpp>
    
      -<src/gcode/temp/M104_M109.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/gcode/temp/M155.cpp>
    
      -<src/gcode/units/G20_G21.cpp>
      -<src/gcode/units/M149.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
      -<src/libs/BL24CXX.cpp> -<src/libs/W25Qxx.cpp>
    
      -<src/libs/L64XX> -<src/module/stepper/L64xx.cpp> -<src/HAL/shared/HAL_spi_L6470.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/servo.cpp> -<src/gcode/control/M280.cpp>
    
      -<src/module/stepper/TMC26X.cpp>
    
    extra_scripts      =
      pre:buildroot/share/PlatformIO/scripts/common-dependencies.py
      pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
    
    MKS-Sean's avatar
    MKS-Sean committed
      post:buildroot/share/PlatformIO/scripts/common-dependencies-post.py
    build_flags        = -fmax-errors=5 -g -D__MARLIN_FIRMWARE__ -fmerge-constants
    
    lib_deps           =
    
    #
    # Feature Dependencies
    #
    [features]
    
    MKS-Sean's avatar
    MKS-Sean committed
    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
    
    MKS-Sean's avatar
    MKS-Sean committed
    MKS_WIFI_MODULE         = QRCode=https://github.com/makerbase-mks/QRCode/archive/master.zip
    
    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
    
    MKS-Sean's avatar
    MKS-Sean committed
    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> +<src/HAL/shared/HAL_spi_L6470.cpp>
    
    NEOPIXEL_LED            = Adafruit NeoPixel@1.5.0
    
                              src_filter=+<src/feature/leds/neopixel.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
    MAX6675_._IS_MAX31865   = Adafruit MAX31865 library@~1.1.0
    
    USES_LIQUIDCRYSTAL      = bitbucket-fmalpartida/LiquidCrystal@1.5.0
    
    MKS-Sean's avatar
    MKS-Sean committed
    USES_LIQUIDCRYSTAL_I2C  = marcoschwartz/LiquidCrystal_I2C@1.1.4
    
    USES_LIQUIDTWI2         = LiquidTWI2@1.2.7
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    I2C_EEPROM              = src_filter=+<src/HAL/shared/eeprom_if_i2c.cpp>
    SPI_EEPROM              = src_filter=+<src/HAL/shared/eeprom_if_spi.cpp>
    
    HAS_GRAPHICAL_TFT       = src_filter=+<src/lcd/tft>
    
    MKS-Sean's avatar
    MKS-Sean committed
    DWIN_CREALITY_LCD       = src_filter=+<src/lcd/dwin>
    IS_TFTGLCD_PANEL        = src_filter=+<src/lcd/TFTGLCD>
    HAS_TOUCH_BUTTONS       = 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_MULTI_LANGUAGE      = src_filter=+<src/lcd/menu/menu_language.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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    HAS_MENU_TRAMMING       = src_filter=+<src/lcd/menu/menu_tramming.cpp>
    
    HAS_MENU_UBL            = src_filter=+<src/lcd/menu/menu_ubl.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    USE_UHS2_USB            = src_filter=+<src/sd/usb_flashdrive/lib-uhs2>
    USE_UHS3_USB            = src_filter=+<src/sd/usb_flashdrive/lib-uhs3>
    
    USB_FLASH_DRIVE_SUPPORT = src_filter=+<src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp>
    
    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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    IIC_BL24CXX_EEPROM      = src_filter=+<src/libs/BL24CXX.cpp>
    HAS_SPI_FLASH           = src_filter=+<src/libs/W25Qxx.cpp>
    
    HAS_ETHERNET            = src_filter=+<src/feature/ethernet.cpp> +<src/gcode/feature/network/M552-M554.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>
    
    MEATPACK                = src_filter=+<src/feature/meatpack.cpp>
    
    MIXING_EXTRUDER         = src_filter=+<src/feature/mixing.cpp> +<src/gcode/feature/mixing/M163-M165.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
    HAS_PRUSA_MMU1          = src_filter=+<src/feature/mmu/mmu.cpp>
    HAS_PRUSA_MMU2          = src_filter=+<src/feature/mmu/mmu2.cpp> +<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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    (EXT|MANUAL)_SOLENOID.* = 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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    MECHANICAL_GANTRY_CAL.+ = src_filter=+<src/gcode/calibrate/G34.cpp>
    Z_MULTI_ENDSTOPS        = src_filter=+<src/gcode/calibrate/G34_M422.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/feature/tramming.cpp> +<src/gcode/bedlevel/G35.cpp>
    
    HAS_MESH                = src_filter=+<src/gcode/bedlevel/G42.cpp>
    
    HAS_LEVELING            = src_filter=+<src/gcode/bedlevel/M420.cpp> +<src/feature/bedlevel/bedlevel.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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    PIDTEMP                 = src_filter=+<src/gcode/config/M301.cpp>
    
    PREVENT_COLD_EXTRUSION  = src_filter=+<src/gcode/config/M302.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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/sd/cardreader.cpp> +<src/sd/Sd2Card.cpp> +<src/sd/SdBaseFile.cpp> +<src/sd/SdFatUtil.cpp> +<src/sd/SdFile.cpp> +<src/sd/SdVolume.cpp> +<src/gcode/sd>
    
    MKS-Sean's avatar
    MKS-Sean committed
    HAS_MEDIA_SUBCALLS      = src_filter=+<src/gcode/sd/M32.cpp>
    GCODE_REPEAT_MARKERS    = src_filter=+<src/feature/repeat.cpp> +<src/gcode/sd/M808.cpp>
    
    HAS_EXTRUDERS           = src_filter=+<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp>
    
    MKS-Sean's avatar
    MKS-Sean committed
    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>
    
    HAS_SERVOS              = src_filter=+<src/module/servo.cpp> +<src/gcode/control/M280.cpp>
    
    MORGAN_SCARA            = src_filter=+<src/gcode/scara>
    
    HAS_MICROSTEPS          = src_filter=+<src/gcode/control/M350_M351.cpp>
    
    (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]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = atmelavr
    extends  = common_avr8
    board    = megaatmega2560
    
    
    #
    # ATmega2560 with extended pins 70-85 defined
    
    MKS-Sean's avatar
    MKS-Sean committed
    # BOARD_BQ_ZUM_MEGA_3D
    # BOARD_ULTIMAIN_2
    # BOARD_MIGHTYBOARD_REVE
    # BOARD_EINSTART_S
    
    #
    [env:mega2560ext]
    platform            = atmelavr
    
    MKS-Sean's avatar
    MKS-Sean committed
    extends             = env:mega2560
    
    board_build.variant = megaextendedpins
    extra_scripts       = ${common.extra_scripts}
                          pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py
    
    #
    # ATmega1280
    #
    [env:mega1280]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = atmelavr
    extends  = common_avr8
    board    = megaatmega1280
    
    #
    # MightyBoard AVR with extended pins
    #
    [mega_extended_optimized]
    extends             = common_avr8
    board_build.variant = megaextendedpins
    extra_scripts       = ${common.extra_scripts}
                          pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py
    upload_speed        = 57600
    build_flags         = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues
    
    MKS-Sean's avatar
    MKS-Sean committed
    # MightyBoard ATmega1280
    
    #
    [env:MightyBoard1280]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = atmelavr
    extends  = mega_extended_optimized
    board    = megaatmega1280
    
    MKS-Sean's avatar
    MKS-Sean committed
    # MightyBoard ATmega2560
    
    #
    [env:MightyBoard2560]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = atmelavr
    extends  = mega_extended_optimized
    board    = megaatmega2560
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = atmelavr
    extends  = common_avr8
    board    = reprap_rambo
    
    MKS-Sean's avatar
    MKS-Sean committed
    # FYSETC F6 V1.3 / V1.4
    
    MKS-Sean's avatar
    MKS-Sean committed
    [env:FYSETC_F6]
    platform = atmelavr
    extends  = common_avr8
    board    = fysetc_f6
    
    
    #
    # Sanguinololu (ATmega644p)
    #
    [env:sanguino644p]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = atmelavr
    extends  = common_avr8
    board    = sanguino_atmega644p
    
    
    #
    # Sanguinololu (ATmega1284p)
    #
    [env:sanguino1284p]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform                  = atmelavr
    extends                   = common_avr8
    board                     = sanguino_atmega1284p
    
    board_upload.maximum_size = 126976
    
    
    #
    # Melzi and clones (ATmega1284p)
    #
    [env:melzi]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform     = atmelavr
    extends      = env:sanguino1284p
    upload_speed = 57600
    
    #
    # Sanguinololu (ATmega1284p stock bootloader with tuned flags)
    #
    
    [tuned_1284p]
    build_flags = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues
    
    [env:sanguino1284p_optimized]
    platform    = atmelavr
    extends     = env:melzi
    build_flags = ${tuned_1284p.build_flags}
    
    #
    # Melzi and clones (alias for sanguino1284p_optimized)
    #
    [env:melzi_optimized]
    platform = atmelavr
    extends  = env:sanguino1284p_optimized
    
    
    #
    # Melzi and clones (Optiboot bootloader)
    #
    [env:melzi_optiboot]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform     = atmelavr
    extends      = common_avr8
    board        = sanguino_atmega1284p
    upload_speed = 115200
    
    #
    # Melzi and clones (Zonestar Melzi2 with tuned flags)
    #
    
    MKS-Sean's avatar
    MKS-Sean committed
    [env:melzi_optiboot_optimized]
    platform    = atmelavr
    extends     = env:melzi_optiboot
    build_flags = ${tuned_1284p.build_flags}
    
    #
    # AT90USB1286 boards using CDC bootloader
    # - BRAINWAVE
    # - BRAINWAVE_PRO
    # - SAV_MKI
    # - TEENSYLU
    #
    [env:at90usb1286_cdc]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform   = teensy
    extends    = common_avr8
    board      = at90usb1286
    lib_ignore = ${env:common_avr8.lib_ignore}, Teensy_ADC, NativeEthernet
    
    
    #
    # AT90USB1286 boards using DFU bootloader
    
    MKS-Sean's avatar
    MKS-Sean committed
    # - Printrboard
    # - Printrboard Rev.F
    
    # - ? 5DPRINT ?
    #
    [env:at90usb1286_dfu]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = teensy
    extends  = env:at90usb1286_cdc
    
    
    #################################
    #                               #
    #       DUE Architecture        #
    #                               #
    #################################
    
    
    #
    # Due (Atmel SAM3X8E ARM Cortex-M3)
    #
    #  - RAMPS4DUE
    #  - RADDS
    #
    [env:DUE]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform   = atmelsam
    board      = due
    src_filter = ${common.default_src_filter} +<src/HAL/DUE> +<src/HAL/shared/backtrace>
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = atmelsam
    extends  = env:DUE
    board    = dueUSB
    
    
    [env:DUE_debug]
    # Used when WATCHDOG_RESET_MANUAL is enabled
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform    = atmelsam
    extends     = env:DUE
    build_flags = ${common.build_flags}
    
      -funwind-tables
      -mpoke-function-name
    
    
    #
    # Archim SAM
    #
    [common_DUE_archim]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform                 = atmelsam
    extends                  = env:DUE
    board                    = archim
    build_flags              = ${common.build_flags}
    
      -DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSBCON
    
    MKS-Sean's avatar
    MKS-Sean committed
    board_build.variants_dir = buildroot/share/PlatformIO/variants/
    extra_scripts            = ${common.extra_scripts}
    
      Marlin/src/HAL/DUE/upload_extra_script.py
    
    [env:DUE_archim]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = ${common_DUE_archim.platform}
    extends  = common_DUE_archim
    
    
    # Used when WATCHDOG_RESET_MANUAL is enabled
    [env:DUE_archim_debug]
    
    MKS-Sean's avatar
    MKS-Sean committed
    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
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform_packages = framework-arduino-lpc176x@^0.2.6
    
    board             = nxp_lpc1768
    lib_ldf_mode      = off
    lib_compat_mode   = strict
    
    extra_scripts     = ${common.extra_scripts}
      Marlin/src/HAL/LPC1768/upload_extra_script.py
    
    MKS-Sean's avatar
    MKS-Sean committed
    src_filter        = ${common.default_src_filter} +<src/HAL/LPC1768> +<src/HAL/shared/backtrace>
    
    lib_deps          = ${common.lib_deps}
      Servo
    
    custom_marlin.USES_LIQUIDCRYSTAL = arduino-libraries/LiquidCrystal@~1.0.7
    
    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]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = ${common_LPC.platform}
    extends  = common_LPC
    board    = nxp_lpc1768
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform = ${common_LPC.platform}
    extends  = common_LPC
    board    = nxp_lpc1769
    
    nictronik99's avatar
    nictronik99 committed
    #################################
    #                               #
    #      STM32 Architecture       #
    #                               #
    #################################
    
    nictronik99's avatar
    nictronik99 committed
    #
    # HAL/STM32 Base Environment values
    #
    [common_stm32]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform      = ststm32@~10.0
    
    nictronik99's avatar
    nictronik99 committed
    build_flags   = ${common.build_flags}
    
    MKS-Sean's avatar
    MKS-Sean committed
      -std=gnu++14
    
    nictronik99's avatar
    nictronik99 committed
      -DUSBCON -DUSBD_USE_CDC
      -DTIM_IRQ_PRIO=13
    
    MKS-Sean's avatar
    MKS-Sean committed
      -DADC_RESOLUTION=12
    
    nictronik99's avatar
    nictronik99 committed
    build_unflags = -std=gnu++11
    
    MKS-Sean's avatar
    MKS-Sean committed
    src_filter    = ${common.default_src_filter} +<src/HAL/STM32> +<src/HAL/shared/backtrace>
    
    nictronik99's avatar
    nictronik99 committed
    #
    # HAL/STM32F1 Common Environment values
    #
    [common_stm32f1]
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform          = ststm32@~10.0
    board_build.core  = maple
    build_flags       = !python Marlin/src/HAL/STM32F1/build_flags.py
      ${common.build_flags}
      -DARDUINO_ARCH_STM32
    build_unflags     = -std=gnu11 -std=gnu++11
    src_filter        = ${common.default_src_filter} +<src/HAL/STM32F1>
    lib_ignore        = SPI, FreeRTOS701, FreeRTOS821
    lib_deps          = ${common.lib_deps}
    
    nictronik99's avatar
    nictronik99 committed
      SoftwareSerialM
    
    MKS-Sean's avatar
    MKS-Sean committed
    platform_packages = tool-stm32duino
    
    #
    # STM32F103RC
    #
    [env:STM32F103RC]
    
    platform          = ${common_stm32f1.platform}
    extends           = common_stm32f1
    
    board             = genericSTM32F103RC
    monitor_speed     = 115200
    
    #
    
    # MEEB_3DP (STM32F103RCT6 with 512K)
    
    [env:STM32F103RC_meeb]
    platform          = ${common_stm32f1.platform}
    extends           = common_stm32f1
    board             = MEEB_3DP
    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)
    #
    
    MKS-Sean's avatar
    MKS-Sean committed
    # 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
    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
    
    MKS-Sean's avatar
    MKS-Sean committed
    # REMRAM_V1
    
    MKS-Sean's avatar
    MKS-Sean committed
    [env:REMRAM_V1]
    
    platform      = ${common_stm32.platform}
    
    MKS-Sean's avatar
    MKS-Sean committed
    extends       = common_stm32
    board         = remram_v1
    build_flags   = ${common_stm32.build_flags}
    
    MKS-Sean's avatar
    MKS-Sean committed
    # ST NUCLEO-F767ZI Development Board
    # This environment is for testing purposes prior to control boards
    # being readily available based on STM32F7 MCUs
    
    MKS-Sean's avatar
    MKS-Sean committed
    [env:NUCLEO_F767ZI]
    
    platform      = ${common_stm32.platform}
    
    MKS-Sean's avatar
    MKS-Sean committed
    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
    
    
    #
    # 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
    extra_scripts   = ${common.extra_scripts}
      buildroot/share/PlatformIO/scripts/mks_robin_nano35.py
    build_flags     = ${common_stm32f1.build_flags}
    
    nictronik99's avatar
    nictronik99 committed
      -DMCU_STM32F103VE -DSS_TIMER=4
    
    debug_tool      = jlink
    upload_protocol = jlink
    
    # MKS Robin (STM32F103ZET6)
    
    nictronik99's avatar
    nictronik99 committed
    #
    
    [env:mks_robin]
    
    nictronik99's avatar
    nictronik99 committed
    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
    
    MKS-Sean's avatar
    MKS-Sean committed
    board_build.encrypt  = Yes
    
    board_build.firmware = Robin.bin
    build_flags          = ${common_stm32.build_flags}
    
    MKS-Sean's avatar
    MKS-Sean committed
      -DENABLE_HWSERIAL3 -DTIMER_SERIAL=TIM5
    
    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