Jul 272020
Guten Morgen in die große weite Welt und diesen Tag möchten wir mit einem Artikel rund um die neue Marlin Software starten. Denn vor knapp 3 Stunden wurde ein „Big Update“ veröffentlicht und Marlin steht ab sofort in Version 2.0.6 zum Download bereit. Und wenn wir uns das neue Update mal genauer anschauen, dann kann man nur „WOW“ sagen, denn es wurde eine Menge hinzugefügt oder verbessert.
Aber schaut Euch das große Update selber mal an. Ich werde wohl auf dem Sovol das Update einspielen, nachdem ich es angepasst habe und das dauert ja bekanntlich immer am längsten. Daher immer der gute Tipp, dass Ihr Eure vorhandenen Version abspeichert, denn sollte etwas nicht funktionieren, könnt Ihr jederzeit wieder zurück auf die alte Version gehen.
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.