Skip to content

Marlin 2.0.6

Compare
Choose a tag to compare
@thinkyhead thinkyhead released this 27 Jul 01:41
· 4530 commits to 2.0.x since this release

For this release we focused on compatibility with a wider range of boards and controllers, especially STM32-based boards, color screens, and touch screens. With so many new files being added, a lot of work has gone into optimizing the PlatformIO build by peeking at enabled features and only downloading libraries and compiling code required for your enabled options. And we tackled a whole host of issues from stepper timing and interrupt priority down to the details of controller-wheel responsiveness.

New Machines and Boards

  • BigTreeTech SKR Pro 1.2
  • Malyan M200 V2
  • Malyan M300
  • Creality Ender 3 V2 board (Creality v4.x)
  • MKS Robin E3 / E3D
  • MKS Robin nano V2
  • BTT SKR Mini E3 V2
  • Funmat HT V4.0
  • Ortur 4.3
  • Tenlog D3 Hero
  • MEEB 3DP
  • Tronxy X5SA (V5 / V6 boards)
  • Vertex Nano with Vellemann K8600
  • Trigorilla Pro

New Features

  • G6 External Motion Controller (like Klipper) support. See #17853.
  • Prusa MMU2 Extruder Sensor support
  • Add settings for Prusa MMU2S
  • Inline laser / spindle power control
  • Add M150 I to set an individual Neopixel's color
  • Automatic Tool Migration (beta). See #17248
  • Composite USB for STM32 SDIO (experimental)
  • M600 R to resume at a new temperature
  • Optional move-to-center after UBL G29 J (3-point)
  • Trinamic driver serial multiplexing
  • Add M122 I to reinitialize TMC drivers at any time
  • Option to enable M360 for Repetier Host
  • M115_GEOMETRY_REPORT adds machine info to M115
  • Add HOTEND_IDLE_TIMEOUT safety feature
  • Add M200 S and L for Volumetric Extruder Limit
  • Add G35 Bed tramming assistant
  • Sensorless Homing for Core kinematics
  • Power monitor and display. (#17437)

Configuration

  • Add USE_PROBE_FOR_Z_HOMING option
  • Add SERIAL_FLOAT_PRECISION option
  • Add SD_PROCEDURE_DEPTH option (for M32 P)
  • Add JD_HANDLE_SMALL_SEGMENTS option. (#18316)
  • Add REPORT_FAN_CHANGE option
  • Add CONTROLLER_FAN_IGNORE_Z option
  • Change FIL_RUNOUT_INVERTING true to FIL_RUNOUT_STATE HIGH
  • Use Material Preset 1 as defaults for M303 PID autotune
  • Allow different Default PIDs for each hotend
  • Option to set Babystep Size in mm
  • Trinamic steppers Homing Phase. See #17299.
  • Add a TMC Chopper Timing Preset for 24V 0.9°
  • Homing bump is now an array
  • Improved, extended "digipot" settings
  • Add AUTOTEMP default proportions
  • Adjustable XY_FREQUENCY_LIMIT
  • NOZZLE_PARK_FEATURE X-only / Y-only move option
  • Fix overridden U8G+SPI delay overrides
  • Fix EEPROM type selection and fallbacks
  • Add SDCARD_READONLY option to reduce binary size
  • Add VOLUMETRIC_EXTRUDER_LIMIT. See #17017.
  • Add NOZZLE_PARK_Z_RAISE_MIN option
  • Add sanity-check for Nozzle Park position
  • Use Preheat 1 temperature as M303 default
  • More Probe Temperature Compensation options
  • Add XYZ_NO_FRAME option for Graphical LCD
  • Allow larger ADC button debounce values
  • Configurable kill pin state
  • Change default filament diameter to 1.75mm
  • Fix, clarify LCD_TIMEOUT_TO_STATUS
  • Longer default power-up delay
  • Disable Z stallGuard by default
  • Allow CASE_LIGHT_PIN override from config
  • Sanity check 3-point defines
  • Sanity-check Chamber thermistor pin
  • Add thermistor 502 for Zonestar Prusa P802M
  • Use center XY for Z Safe Homing default
  • Independent X2,Y2,Z2,Z3,Z4 endstop inverting
  • Add a custom nozzle wipe G-code option

Board / HAL

  • Fix BTT SKR Pro 1.0 issues
  • Fix BTT GTR 1.0 issues
  • Fix MKS S-Gen standard pins
  • Fix FYSETC_AIO_II build
  • Fix Fysetc stm32flash usage
  • Fix FYSETC Cheetah issues, SD re-insert
  • Fix MKS Robin nano issues, use Flash EEPROM
  • Fix GTM32 Rev B LCD pins
  • Fix BIQU BQ111-A4 pins
  • Fix RAMPS 1.4.4 filament runout pin
  • Increase STM32F1 Servo Timer Interrupt Priority
  • Add Chitu V5 (with extra GPIO init)
  • Add Chitu V6 (with Z2 stepper pins)
  • Add Lerdge S,X,K boards
  • Add Emergency Parser for the STM32 HAL
  • Various Mightyboard improvements
  • More complete RUMBA32 support
  • Permit more Creality pin overrides
  • Improve DIAG pin endstop management
  • Various SAMD51 (AF Grand Central) improvements
  • Add ReARM SDSS pin (for RRD LCDs)
  • SD detect override for older Creality3D RAMPS
  • Add Servo and E1 pins for the PICA board
  • Allow timers to be set by STM32 pins files
  • Improved STM32 timer allocation and prioritization
  • Support TMCStepper with MKS Robin Pro
  • Declare extended STM32 serial ports
  • Add LPC176x SPI / I2C EEPROM support
  • Add board-based ST7920 delays
  • Fix STM32F103VE Flash EEPROM size
  • Use MCP4451 interface for MKS SBASE
  • Support GT2560 3rd extruder
  • Consolidate MKS Robin / SKR Mini E3 pins
  • Allow SDIO clock/retry overrides. See #18223.
  • Patch BLTouch Z_MAX_PIN for GT2560 Rev.A (non-plus)
  • Support BL24C16 EEPROM in HAL/STM32F1 (Ender 3 V2)

New LCDs and Controllers

  • TFT LVGL UI
  • FTDI EVE Touch UI
  • Ender 3 V2 controller
  • MKS UI / Little VGL TFT (#18438)
  • FYSETC TFT81050 LCD
  • FYSETC 2.42 inch OLED
  • MKS LCD12864 A/B Controller
  • TFT 2x-3x scale for Anycubic, TronXY
  • ExtUI support for Anycubic I3 Mega
  • Touch-select for MarlinUI menu items
  • Touch-to-jog for MarlinUI edit items
  • Support for FT81050 to FYSETC F6

LCD / Controller

  • Improved alert for EEPROM errors
  • MarlinUI support for up to 5 Material Presets
  • Suppress the initial SD status message
  • Fix, extend, and improve ExtUI touch screens
  • Fix LCD throttling issues
  • Fix Graphical Display cosmetic issues, progress bar
  • Fix low contrast on Minipanel display
  • Implement MarlinUI for color touchscreens
  • Display status during PID Autotune
  • Add M73 remaining time for MKS UI
  • Fix DGUS serial buffer size and other issues
  • Fix GTR 1.0 CR-10 stock display pins
  • Fix Silvergate GLCD display timing
  • Fix Fan Speed menu items
  • Fix click sound with TOUCH_BUTTONS
  • Fix leveling "Point n of 3" message
  • Add Bed PID Edit and Autotune menu items
  • Move Case Light to LEDs submenu
  • Remove "Media Released" message
  • Shorter BLTouch menu item titles
  • Add HD44780 mapping for Czech accents
  • Bring language fonts up to date
  • Clean up LCD Manual Move / UBL Mesh Edit
  • ExtUI mesh support for Malyan LCD
  • Add UI and TMC stall reset for multi-axis
  • Add menu items to run G425 and G35
  • Add Romanian language
  • Updated languages:
    • English
    • Chinese
    • French
    • Galician
    • German
    • Hungarian
    • Italian
    • Polish
    • Brazilian Portuguese
    • Romanian
    • Russian
    • Slovak
    • Spanish

Other Peripherals

  • SKR Pro 1.1 WiFi / external SD card
  • Flash-based EEPROM for Robin E3D
  • Adjust Melzi ST display timing
  • Store Case Light brightness in EEPROM
  • Add Zonestar P802M bed thermistor
  • Fix BLTouch early deployment with ABL G29
  • For L64XX M17 can use hardStop
  • Extend thermistor 1047 to 500°C

Host and Protocol

  • Respect backspaces in G-code
  • Real build date in M115 report
  • Add M303 D to enable/disable PID debug output
  • Add G12 E to set soft endstops state
  • Allow M421 to modify a row, a column, or all
  • More verbose probing error
  • Prefix M503 output with echo:
  • Fix some Host Actions issues
  • Broadcast actions to all "hosts"
  • Report fan speed on change
  • Fix SD finished ExtUI / host action
  • Fix M710 output formatting
  • Separate G-code line numbers for each serial port
  • Tweaks to M114 D output
  • Fix Host Actions support with LPC176x
  • Fix lingering Filament Change host dialog
  • New M115 capabilities:
    • Cap:LONG_FILENAME
    • Cap:SDCARD
    • Cap:ARCS
    • Cap:BABYSTEPPING
    • Cap:RUNOUT

Issues Patched

  • Fix BLTouch PWM reliability on STM32
  • Fix Filament Change lengthy wait for heating
  • Fix Due wired EEPROM init
  • Fix ESP01 (module) WIFI initialization
  • Fix CoreXY babystepping and homing
  • More reliable double-click detection
  • Fix extra TMC serial begin calls
  • Fix M42 M with other parameters
  • Fix M43 analog pins
  • Fix position sync on M420 S0
  • Fix G2/G3 Arcs segment bugs
  • Fix LPC176x RGB NEOPIXEL startup
  • Fix issues with probing margins
  • Fix G76 probe height / position
  • Fix detection with multiple Filament Runout sensors
  • Fix Mixer virtual tools reset
  • Fix Power Loss Resume when card isn't mounted yet
  • Fix false alarm interrupting probing
  • No extraneous pins with ADC Keypad
  • Fix Probe Temperature Compensation build
  • Fix PID autotune timeout
  • Fix Power Loss Resume with HAS_LEDS_OFF_FLAG
  • Fix G12 for SINGLENOZZLE
  • Fix Max Jerk and Stepper PWM menus
  • Fix XY Frequency menu
  • Save/restore leveling on toolchange with SINGLENOZZLE
  • Fix BTT002 SPEAKER timer conflict
  • Fix STM32F4 flash / servo conflict
  • Reserve 'probing failed' for the last attempt
  • Fix SD printing pause with parking
  • Fix multiplication/division for xyz_pos_t, et.al.
  • Bring thermistor names up to date
  • Ignore spurious thermocouple errors
  • Fix alignment of 3-point leveling points
  • Fix G34 move in wrong direction
  • Fix Malyan LCD crash bug
  • Allow TMC Stall Sensitivity to be set to 0
  • Fix M125 unretract length
  • Fix M261, i2c EEPROM, i2c Encoder on LPC176x
  • Fix E DIAG pins for multi-axis auto-assignment
  • Fix STM32F1 EEPROM access start
  • Confirm XY position before Z Safe Homing
  • For G28 Z with Safe Homing, raise before move to XY
  • Fix SD_FINISHED_RELEASECOMMAND bug
  • Fix extra call to unskew()
  • Limited backlash editing for Core kinematics
  • Support up to 8 Trinamic E drivers
  • Apply HOME_BEFORE_FILAMENT_CHANGE if any axis is unknown
  • Consider HOME_AFTER_DEACTIVATE for Z safe homing
  • Improve reliability of POWER_LOSS_RECOVERY
  • Fix User Temp Sensor (1000), reversed Pt100 / Pt1000
  • Fix Hotend Idle Timeout trigger (#18657)
  • Fix passive Chamber Temp reading
  • Fix SD reverse sorting
  • Fix PSU_POWERUP_DELAY when over 2 seconds
  • Improve SAMD51 Servo / BLTouch PWM reliability

Optimized / Improved

  • Reduce Step Smoothing ceiling to 50% CPU usage
  • Improved Junction Deviation with lookup table
  • More accurate Junction Deviation fast-acos
  • Improve G2 / G3 motion accuracy
  • Improve UBL Mesh Editor behavior
  • Improved support for no bed / hotends / fans
  • Reorder Marlin setup() and init serial early
  • Minor Toolchange improvements
  • EEPROM Flash Leveling for more STM32F4 boards
  • Relax bed cooling safety check
  • Save/Load distinct TMC Stallguard thresholds
  • Better ooze prevention during pause
  • Consider Chamber also in Print Job Timer auto-start
  • Non-blocking MAX7219 init sequence
  • MAX7219 pause / resume for interrupt-safe usage
  • Minor optimizations in SD file listing
  • Handle SD sort order in CardReader
  • More conservative Trinamic DIR delay
  • Add M32 subcall overflow error message
  • Prevent setting temperature target outside sensor range
  • Avoid excess E DIR changes in Linear Advance (#18744)

Build and Upload

  • platformio.ini specifies library versions to prevent unexpected build errors
  • PlatformIO will only download and build libraries needed for enabled features
  • Randomize name of firmware...bin in Ender 3 V2 build
  • Allow HAL_TIMER_RATE override for STM32
  • Fix CMSIS / USB-FD name conflicts
  • Use "extends" in platformio.ini for better organization
  • Get more lib_deps from the PlatformIO registry
  • Fysetc S6 variant with direct DFU upload
  • Use "melzi" envs for MELZI_CREALITY board
  • Add a Chitu variant for disk-based update
  • Use TMCStepper 0.7.0 for best LPC176x support
  • Sanity check SERIAL_STATS options for LPC, STM32
  • Use STM32F407VGT6 for BTT002 V1
  • Fix Archim PIO upload on Windows, Arduino IDE LCD
  • Fix Archim LCD with Arduino IDE
  • FIx Sanguino/1284p board_upload.maximum_size

For Developers

  • The ENABLED/DISABLED macros are now usable in code
  • Add "TERN" macros for conditional one-liners
  • Allow pins to override TIMER_NUM and HAL_TIMER_ISR
  • Add uncrust script/config for uncrustify source formatting (beta)
  • Add pinsformat.js script to format pins files (beta)
  • Add Git attributes specifying UNIX line endings
  • Refine EEPROM types and manage in HAL/*/inc/Conditionals_post.h
  • Add "Bed" / "Chamber" string substitutions
  • Add a script to put identifiers on Configurations
  • Add GitHub Actions to label, close, and lock issues
  • Add SRAM command string injection
  • Allow more parameters in SERIAL_ECHO*PAIR macros
  • Define HAL ADC resolution in terms of bit-width
  • Ensure language.h include order
  • Fix I2C_ADDRESS ambiguity
  • Move tests folder up (to buildroot/tests)
  • Add pulldown items for all FastIO headers
  • SD-detect handling refactored to CardReader. See #17380
  • Allow for STEPPER_TIMER_RATE calling a function
  • Use MARLIN_EEPROM_SIZE with E2END as fallback
  • More customizable DGUSDisplay (#18700)

Known Issues

  • The M85 timeout might crash M600
  • M600 after starting SD print but before heating is complete is not supported.