Skip to content
Snippets Groups Projects
platformio.ini 13 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Marlin Firmware
    # PlatformIO Configuration File
    #
    # For detailed documentation with EXAMPLES:
    
    #
    # http://docs.platformio.org/en/latest/projectconf.html
    #
    
    # Automatic targets - enable auto-uploading
    # targets = upload
    
    
    #
    # By default platformio build will abort after 5 errors.
    # Remove '-fmax-errors=5' from build_flags below to see all.
    #
    
    
    [platformio]
    
    src_dir     = Marlin
    build_dir   = .pioenvs
    lib_dir     = .piolib
    
    Brian's avatar
    Brian committed
    libdeps_dir = .piolibdeps
    
    boards_dir  = buildroot/share/PlatformIO/boards
    
    default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
    
    build_flags = -fmax-errors=5
      -g
      -ggdb
    
      https://github.com/MarlinFirmware/U8glib-HAL/archive/dev.zip
    
    Scott Lahteine's avatar
    Scott Lahteine committed
      LiquidCrystal@1.3.4
    
      Adafruit NeoPixel@1.1.3
    
      https://github.com/lincomatic/LiquidTWI2/archive/30aa480.zip
    
      https://github.com/ameyer/Arduino-L6470/archive/dev.zip
    
      https://github.com/trinamic/TMC26XStepper/archive/c1921b4.zip
    
      https://github.com/mikeshub/SailfishLCD.git
      https://github.com/mikeshub/SailfishRGB_LED.git
      https://github.com/mikeshub/SlowSoftI2CMaster.git
    
    #################################
    #                               #
    #   Unique Core Architectures   #
    #                               #
    #  Add a new "env" below if no  #
    # entry has values suitable to  #
    #   build for a given board.    #
    #                               #
    #################################
    
    #
    # ATmega2560
    #
    
    Scott Lahteine's avatar
    Scott Lahteine committed
    [env:megaatmega2560]
    
    platform          = atmelavr
    framework         = arduino
    board             = megaatmega2560
    build_flags       = ${common.build_flags}
    board_build.f_cpu = 16000000L
    lib_deps          = ${common.lib_deps}
    
    src_filter        = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    monitor_speed     = 250000
    
    Scott Lahteine's avatar
    Scott Lahteine committed
    [env:megaatmega1280]
    
    platform          = atmelavr
    framework         = arduino
    board             = megaatmega1280
    build_flags       = ${common.build_flags}
    board_build.f_cpu = 16000000L
    lib_deps          = ${common.lib_deps}
    
    src_filter        = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    monitor_speed     = 250000
    
    #
    # AT90USB1286 boards using CDC bootloader
    # - BRAINWAVE
    # - BRAINWAVE_PRO
    # - SAV_MKI
    # - TEENSYLU
    #
    
    [env:at90usb1286_cdc]
    
    platform      = teensy
    framework     = arduino
    
    board         = at90usb1286
    
    build_flags   = ${common.build_flags}
    lib_deps      = ${common.lib_deps}
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    extra_scripts = pre:buildroot/share/atom/create_custom_upload_command_CDC.py
    
    monitor_speed = 250000
    
    
    #
    # AT90USB1286 boards using DFU bootloader
    # - PrintrBoard
    # - PrintrBoard Rev.F
    # - ? 5DPRINT ?
    #
    
    [env:at90usb1286_dfu]
    
    platform      = teensy
    framework     = arduino
    
    build_flags   = ${common.build_flags}
    lib_deps      = ${common.lib_deps}
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    extra_scripts = pre:buildroot/share/atom/create_custom_upload_command_DFU.py
    
    monitor_speed = 250000
    
    #
    # Due (Atmel SAM3X8E ARM Cortex-M3)
    #
    #  - RAMPS4DUE
    #  - RADDS
    #
    
    [env:DUE]
    
    platform      = atmelsam
    framework     = arduino
    board         = due
    build_flags   = ${common.build_flags}
    lib_deps      = ${common.lib_deps}
    lib_ignore    = c1921b4
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_DUE>
    
    monitor_speed = 250000
    
    [env:DUE_USB]
    
    platform      = atmelsam
    framework     = arduino
    board         = dueUSB
    build_flags   = ${common.build_flags}
    lib_deps      = ${common.lib_deps}
    lib_ignore    = c1921b4
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_DUE>
    
    monitor_speed = 250000
    
    [env:DUE_debug]
    # Used when WATCHDOG_RESET_MANUAL is enabled
    
    platform      = atmelsam
    framework     = arduino
    board         = due
    build_flags   = ${common.build_flags}
    
    lib_deps      = ${common.lib_deps}
    lib_ignore    = c1921b4
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_DUE>
    
    monitor_speed = 250000
    
    platform          = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/master.zip
    framework         = arduino
    board             = nxp_lpc1768
    build_flags       = -DTARGET_LPC1768 -DU8G_HAL_LINKS -IMarlin/src/HAL/HAL_LPC1768/include -IMarlin/src/HAL/HAL_LPC1768/u8g ${common.build_flags}
    
    # debug options for backtrace
    #  -funwind-tables
    #  -mpoke-function-name
    
    extra_scripts     = Marlin/src/HAL/HAL_LPC1768/upload_extra_script.py
    src_filter        = ${common.default_src_filter} +<src/HAL/HAL_LPC1768>
    monitor_speed     = 250000
    
    lib_deps          = Servo
      LiquidCrystal
    
      U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/dev.zip
    
      Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/master.zip
    
    
    [env:LPC1769]
    platform          = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/master.zip
    framework         = arduino
    board             = nxp_lpc1769
    
    build_flags       = -DTARGET_LPC1768 -DLPC1769 -DU8G_HAL_LINKS -IMarlin/src/HAL/HAL_LPC1768/include -IMarlin/src/HAL/HAL_LPC1768/u8g ${common.build_flags}
    
    # debug options for backtrace
    #  -funwind-tables
    #  -mpoke-function-name
    
    extra_scripts     = Marlin/src/HAL/HAL_LPC1768/upload_extra_script.py
    
    src_filter        = ${common.default_src_filter} +<src/HAL/HAL_LPC1768>
    
    monitor_speed     = 250000
    
    lib_deps          = Servo
      LiquidCrystal
    
      U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/dev.zip
    
      Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/master.zip
    
    #
    # Melzi and clones (ATmega1284p)
    #
    [env:melzi]
    
    platform      = atmelavr
    framework     = arduino
    board         = sanguino_atmega1284p
    build_flags   = ${common.build_flags}
    upload_speed  = 57600
    lib_deps      = ${common.lib_deps}
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    monitor_speed = 250000
    
    
    #
    # Melzi and clones (Optiboot bootloader)
    #
    [env:melzi_optiboot]
    
    platform      = atmelavr
    framework     = arduino
    board         = sanguino_atmega1284p
    build_flags   = ${common.build_flags}
    upload_speed  = 115200
    lib_deps      = ${common.lib_deps}
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    monitor_speed = 250000
    
    Bob-the-Kuhn's avatar
    Bob-the-Kuhn committed
    #
    # RAMBo
    #
    [env:rambo]
    
    platform          = atmelavr
    framework         = arduino
    board             = reprap_rambo
    build_flags       = ${common.build_flags}
    board_build.f_cpu = 16000000L
    lib_deps          = ${common.lib_deps}
    
    src_filter        = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    monitor_speed     = 250000
    
    Bob-the-Kuhn's avatar
    Bob-the-Kuhn committed
    
    #
    # Sanguinololu (ATmega644p)
    #
    [env:sanguino_atmega644p]
    
    platform      = atmelavr
    framework     = arduino
    board         = sanguino_atmega644p
    build_flags   = ${common.build_flags}
    lib_deps      = ${common.lib_deps}
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    monitor_speed = 250000
    
    
    #
    # Sanguinololu (ATmega1284p)
    #
    [env:sanguino_atmega1284p]
    
    platform      = atmelavr
    framework     = arduino
    board         = sanguino_atmega1284p
    build_flags   = ${common.build_flags}
    lib_deps      = ${common.lib_deps}
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    
    monitor_speed = 250000
    
    Bob-the-Kuhn's avatar
    Bob-the-Kuhn committed
    
    
    platform      = ststm32
    
    framework     = arduino
    board         = genericSTM32F103RE
    
    build_flags   = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
    
      ${common.build_flags} -std=gnu++14
    build_unflags = -std=gnu++11
    
    lib_deps      = ${common.lib_deps}
    lib_ignore    = U8glib-HAL
    
      c1921b4
      libf3c
      lib066
      Adafruit NeoPixel_ID28
      Adafruit NeoPixel
      libf3e
      TMC26XStepper
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
    
    monitor_speed = 250000
    
    Bob-the-Kuhn's avatar
    Bob-the-Kuhn committed
    
    
    #
    # BIGTREE_SKR_MINI
    #
    [env:BIGTREE_SKR_MINI]
    platform      = ststm32
    framework     = arduino
    board         = genericSTM32F103RC
    extra_scripts = buildroot/share/PlatformIO/scripts/STM32F1_SKR_MINI.py
    build_flags   = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
    
      ${common.build_flags} -std=gnu++14
    
    build_unflags = -std=gnu++11
    
    lib_deps      = ${common.lib_deps}
    lib_ignore    = U8glib-HAL
      c1921b4
      libf3c
      lib066
      Adafruit NeoPixel_ID28
      Adafruit NeoPixel
      libf3e
      TMC26XStepper
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
    monitor_speed = 115200
    upload_protocol = stlink
    debug_tool = stlink
    
    
    [env:STM32F4]
    
    platform      = ststm32
    framework     = arduino
    board         = disco_f407vg
    
    build_flags   = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB
    
    lib_deps      = ${common.lib_deps}
    
    lib_ignore    = Adafruit NeoPixel, c1921b4, TMCStepper
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32F4>
    
    monitor_speed = 250000
    
    # ARMED (STM32)
    
    platform    = ststm32
    framework   = arduino
    board       = armed_v1
    build_flags = ${common.build_flags} -DUSBCON -DUSBD_VID=0x0483 '-DUSB_MANUFACTURER="Unknown"' '-DUSB_PRODUCT="ARMED_V1"' -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -O2 -ffreestanding -fsigned-char -fno-move-loop-invariants -fno-strict-aliasing -std=gnu11 -std=gnu++11
    lib_deps    = ${common.lib_deps}
    lib_ignore  = Adafruit NeoPixel, c1921b4
    src_filter  = ${common.default_src_filter} +<src/HAL/HAL_STM32>
    
    #
    # MKS Robin (STM32F103ZET6)
    #
    [env:mks_robin]
    
    framework     = arduino
    board         = genericSTM32F103ZE
    extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin.py
    
    build_flags   = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
    
      ${common.build_flags} -std=gnu++14
    
    build_unflags = -std=gnu++11
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
    lib_deps      = ${common.lib_deps}
    lib_ignore    = c1921b4
      libf3c
      lib066
      Adafruit NeoPixel_ID28
      Adafruit NeoPixel
      libf3e
      TMC26XStepper
    
    #
    # JGAurora A5S A1 (STM32F103ZET6)
    #
    [env:JGAURORA_A5S_A1]
    platform      = ststm32@5.3.0
    framework     = arduino
    board         = genericSTM32F103ZE
    extra_scripts = buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py
    build_flags   = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
      ${common.build_flags} -DSTM32_XL_DENSITY
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
    lib_deps      = ${common.lib_deps}
    lib_ignore    = c1921b4
      libf3c
      lib066
      Adafruit NeoPixel_ID28
      Adafruit NeoPixel
      libf3e
      TMC26XStepper
    lib_ldf_mode  = 1
    monitor_speed = 250000
    
    
    #
    # STM32F407VET6 with RAMPS-like shield
    # 'Black' STM32F407VET6 board - http://wiki.stm32duino.com/index.php?title=STM32F407
    # Shield - https://github.com/jmz52/Hardware
    #
    [env:black_stm32f407ve]
    platform = ststm32
    framework = arduino
    board = blackSTM32F407VET6
    extra_scripts = pre:buildroot/share/PlatformIO/scripts/black_stm32f407vet6.py
    build_flags = ${common.build_flags}
      -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"BLACK_F407VE\"
    lib_deps = ${common.lib_deps}
    lib_ignore = Adafruit NeoPixel, c1921b4, TMCStepper, TMC26XStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster
    src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32>
    monitor_speed = 250000
    
    
    Bob-the-Kuhn's avatar
    Bob-the-Kuhn committed
    #
    # Teensy 3.5 / 3.6 (ARM Cortex-M4)
    #
    [env:teensy35]
    
    platform      = teensy
    framework     = arduino
    board         = teensy35
    build_flags   = ${common.build_flags}
    lib_deps      = ${common.lib_deps}
    lib_ignore    = Adafruit NeoPixel
    
    src_filter    = ${common.default_src_filter} +<src/HAL/HAL_TEENSY35_36>
    
    monitor_speed = 250000
    
    #
    # Malyan M200 (STM32F1)
    #
    
    [env:malyanm200]
    platform    = ststm32
    framework   = arduino
    
    board       = malyanM200
    
    build_flags = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py -DMCU_STM32F103CB -D __STM32F1__=1 -std=c++1y -D MOTHERBOARD="BOARD_MALYAN_M200" -DSERIAL_USB -ffunction-sections -fdata-sections -Wl,--gc-sections
    
    src_filter  = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
    
    #-<frameworks>
    
      U8glib
      LiquidCrystal_I2C
      LiquidCrystal
      NewliquidCrystal
      LiquidTWI2
      Adafruit NeoPixel
    
      TMCStepper
    
      Servo(STM32F1)
      TMC26XStepper
      U8glib-HAL
      c1921b4
    
    
    #
    # Espressif ESP32
    #
    [env:esp32]
    
    platform      = espressif32
    board         = esp32dev
    framework     = arduino
    upload_speed  = 115200
    
    upload_port = /dev/ttyUSB0
    lib_deps =
      https://github.com/me-no-dev/AsyncTCP.git
      https://github.com/me-no-dev/ESPAsyncWebServer.git
    
    lib_ignore  =
      LiquidCrystal_I2C
      LiquidCrystal
      NewliquidCrystal
      LiquidTWI2
      TMC26XStepper
      c1921b4
    
    src_filter  = ${common.default_src_filter} +<src/HAL/HAL_ESP32>
    
    
    #
    # FYSETC F6 V1.3
    #
    [env:fysetc_f6_13]
    platform          = atmelavr
    framework         = arduino
    board             = fysetc_f6_13
    build_flags       = ${common.build_flags}
    board_build.f_cpu = 16000000L
    lib_deps          = ${common.lib_deps}
    src_filter        = ${common.default_src_filter} +<src/HAL/HAL_AVR>
    monitor_speed     = 250000
    
    Scott Lahteine's avatar
    Scott Lahteine committed
    
    #
    # Native
    # No supported Arduino libraries, base Marlin only
    #
    [env:linux_native]
    platform        = native
    build_flags     = -D__PLAT_LINUX__ -std=gnu++17 -ggdb -g -lrt -lpthread
    src_build_flags = -Wall -IMarlin/src/HAL/HAL_LINUX/include
    build_unflags   = -Wall
    lib_ldf_mode    = off
    lib_deps        =
    extra_scripts   =
    src_filter      = ${common.default_src_filter} +<src/HAL/HAL_LINUX>