Marlin 2.0.6
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 toM115
- Add
HOTEND_IDLE_TIMEOUT
safety feature - Add
M200
S
andL
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 (forM32 P
) - Add
JD_HANDLE_SMALL_SEGMENTS
option. (#18316) - Add
REPORT_FAN_CHANGE
option - Add
CONTROLLER_FAN_IGNORE_Z
option - Change
FIL_RUNOUT_INVERTING true
toFIL_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
andG35
- 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 usehardStop
- 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 withecho:
- 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 (tobuildroot/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
withE2END
as fallback - More customizable DGUSDisplay (#18700)
Known Issues
- The
M85
timeout might crashM600
M600
after starting SD print but before heating is complete is not supported.