Mechanica Firmware – Marlin
Informatie (ENG)
Marlin is a firmware for RepRap 3D printers, the software that resides on the controller board and controls the input/output, voltage states, and movement of the 3D printer. It runs specifically on the Arduino platform. Depending on configuration options, the size of the Marlin binary image may be anywhere from 50K to over 200K. It supports a huge number of features, such as:
- Servos for bed probing
- Bed Auto Leveling
- Mesh Bed Leveling
- Manual Bed Leveling
- Firmware Retraction
- Thermal Runaway Protection
- EEPROM save and restore
- Thermistors and thermocouples
- LCD Controllers and SD cards
- Delta, SCARA, and Cartesian kinematics
- USB communication
- A rich dialect of G-Code
- Up to 4 extruders
- Several specific boards
Quick Information
Works on RAMPS 1.4, Rumba, Ultimaker, Sanguinololu, Generation_6_Electronics, and probably other controllers based on AVR 8-bit MCUs. The list is in the file “Boards.h”.
This RepRap firmware is a mashup between Sprinter, Grbl and many original parts.
Derived from Sprinter and Grbl by Erik van der Zalm. Sprinter’s lead developers are Kliment and caru. Grbl’s lead developer is Simen Svale Skogsrud. Sonney Jeon (Chamnit) improved some parts of Grbl. A fork by bkubicek for the Ultimaker was merged, and further development was aided by him. Some features have been added by: Lampmaker, Bradley Feldman, and others…
Features:
- Interrupt based movement with real linear acceleration.
- High steprate.
- Look ahead (Keep the speed high when possible. High cornering speed).
- Interrupt based temperature protection.
- preliminary support for Matthew Roberts advance algorithm For more info see: http://reprap.org/pipermail/reprap-dev/2011-May/003323.html.
- Full endstop support.
- SD Card support.
- SD Card folders (works in Pronterface).
- LCD support (ideally 20×4 or 128×64).
- LCD menu system for autonomous SD card printing, controlled by an click-encoder.
- EEPROM storage of e.g. max-velocity, max-acceleration, and similar variables.
- many small but handy things originating from bkubicek’s fork.
- Arc support.
- Temperature oversampling.
- Dynamic Temperature setpointing aka “AutoTemp”.
- Support for QTMarlin, a very beta GUI for PID-tuning and velocity-acceleration testing. https://github.com/bkubicek/QTMarlin
- Endstop trigger reporting to the host software.
- Updated sdcardlib.
- Heater power reporting. Useful for PID monitoring.
- CoreXY kinematics (http://www.corexy.com/theory.html).
- Delta kinematics.
- SCARA kinematics.
- Auto bed leveling (actually auto bed compensation) support has been added.
- Firmware binary size between around 50kB and 100kB, depending on options.
The default baudrate is 250000. Because this baudrate is directly derived from the usual 16MHz clock of the Arduino MCU, it has less jitter and hence errors than the usual 115200 baud, but 250000 baud is less supported by drivers and host-environments.
Differences from and additions to the already good Sprinter firmware
Look-ahead
Marlin has jerk-type look-ahead. Whithout it, it would brake to a stop and re-accelerate at each corner. Lookahead will only decelerate and accelerate to some non-zero velocity, so that the change in vectorial velocity magnitude is less than the xy_jerk_velocity. This is only possible, if some future moves are already processed, hence the name look-ahead. It leads to less over-deposition of material at corners, especially at flat angles.
Arc support
Slic3r can find curves that, although broken into segments, were meant to describe an arc. Marlin is able to print those arcs. The advantage is that the firmware can choose the resolution, and can perform the arc with nearly constant velocity, resulting in a nice finish. Also, less serial communication is needed.
Temperature Oversampling
To reduce noise and make the PID-differential term more useful, 16 ADC conversion results are averaged.
AutoTemp
If your gcode contains a wide spread of extruder velocities, or you realtime change the building speed, the temperature should be changed accordingly. Usually, higher speed requires higher temperature. This can now be performed by the AutoTemp function. Enable AutoTemp mode with M109 S T F
and disable it with M109
(without any F value). When active, the maximal extruder stepper rate of all buffered moves is calculated and named “maxerate” [steps/sec]. The desired temperature is then set to t=tempmin+factor*maxerate, constrained between tempmin and tempmax. If the target temperature is set manually or by GCode to a value less then tempmin, it will be kept without change. Ideally, your GCode can be completely free of temperature controls, apart from a M109 S T F
in the start.gcode, and a M109 S0
in the end.gcode.
EEPROM
If you have established known working PID constants, acceleration, and max-velocity settings for your own machine, you can set them, then store them in the EEPROM. On each boot-up, Marlin will automatically load these values from EEPROM, independent of what your compiled Configuration.h says.
LCD Menu
If your hardware supports it, you can build a LCD-CardReader+Click+encoder combination. This will allow you to adjust temperatures, accelerations, velocities, and flow rates in realtime (while printing). It also provides the ability to select and print files directly from the SD card, preheat the extruder, disable the stepper motors, and do other interesting things. If you have at least a 20×4 or 16×2 display, useful data is shown.
SD card folders
If you have an SD card reader attached to your controller, folders are supported to a depth of 10 levels. Listing files in Pronterface shows “/path/subpath/file.g”. You can write to files in subfolders by including the path (in lowercase). (Hidden files, backup files, and non-GCode files are not included in file listings.)
Endstop trigger reporting
If an endstop is hit while moving towards the endstop, the location at which the firmware thinks the endstop was triggered is output to the serial port. This is useful because the user gets a warning message. Tools like QTMarlin can use this to find acceptable combinations of velocity+acceleration.
Coding paradigm
Not relevant from the user perspective, but Marlin is split into thematic chunks, and has tried to partially enforce private variables. This is intended to make interactions between modules clearer, and leads to a higher level of encapsulation. We think this will be useful as a preliminary step for porting to other platforms, such as ARM. Lots of RAM (with enabled LCD ~2200 bytes) was saved by storing character strings in Program Memory. In the serial communication, a #define-based level of abstraction was enforced, so transfer of information is clear (usually beginning with “echo:”), an error “error:”, or just normal protocol, necessary for backwards compatibility.
Interrupt based temperature measurements
An interrupt is used to manage ADC conversions, and enforce checking for critical temperatures. This leads to less blocking in the heater management routine.
Non-standard M-Codes, different to an old version of sprinter:
Movement:
- G2 – CW ARC
- G3 – CCW ARC
General:
- M17 – Enable/Power all stepper motors. Compatibility to ReplicatorG.
- M18 – Disable all stepper motors; same as M84.Compatibility to ReplicatorG.
- M30 – Print time since last M109 or SD card start to serial
- M42 – Change pin status via gcode
- M80 – Turn on Power Supply
- M81 – Turn off Power Supply
- M114 – Output current position to serial port
- M119 – Output Endstop status to serial port
Movement variables:
- M202 – Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!!
- M203 – Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec
- M204 – Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate
- M220 – set build speed mulitplying S:factor in percent ; aka “realtime tuneing in the gcode”. So you can slow down if you have islands in one height-range, and speed up otherwise.
- M301 – Set PID parameters P I and D
- M303 – PID autotune, S = target temperature.
- M400 – Finish all buffered moves.
Advance:
- M200 – Set filament diameter for advance
- M205 – advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk
EEPROM:
- M500 – stores paramters in EEPROM
- M501 – reads parameters from EEPROM (if you need reset them after you changed them temporarily).
- M502 – reverts to the default “factory settings”. You still need to store them in EEPROM afterwards if you want to.
- M503 – print the current settings (from memory not from eeprom)
Configuring and compilation
What you need to know before starting:
- What kind of printer you are using. If you are using a Cartesian printer (like the Prusa i3), you are going to need to calculate the steps/mm for each axis and for the extruder. To figure this out, you can go to http://prusaprinters.org/calculator/ or Triffid_Hunter’s_Calibration_Guide. Write down the values you get for everything.
- You need to know what kind of drive is being used with your printer. If it’s a belt, you need to know what kind. If it’s a screw, need to know what kind.
- The Prusa i3 uses belts for X and Y, and screws for Z.
- A host software like Printrun or Repetier or even Octoprint.
- Install the arduino software IDE/toolset, version 1.0.5 or 1.0.6 from http://www.arduino.cc/en/Main/Software
- Download the Marlin firmware from https://github.com/MarlinFirmware/Marlin (see the Download Zip button), or use git to clone it (if you know how to use git).
- Extract the firmware to a directory of your choice.
- Start the arduino IDE. Select Tools -> Board -> Arduino Mega 2560 (or whatever your microcontroller is)
- Select the correct serial port in Tools ->Serial Port, usually there is only one option.
- Open Marlin.ino in /path/to/Marlin/Marlin
- Browse to boards.h
- This is a list of motherboard types. You’ll need to figure out which one you need and write down the word after #define on that line.
- Example: If you’re using a RAMPS 1.4 with a extruder, fan (optional) and heated bed, then you’d need RAMPS_13_EFB.
- This is a list of motherboard types. You’ll need to figure out which one you need and write down the word after #define on that line.
- Browse to Configuration.h
- Write down the value given in #define BAUDRATE for later.
- At the line that says #define MOTHERBOARD, replace whatever follows MOTHERBOARD with what you chose earlier.
- Set the #define EXTRUDERS to the number of extruders that you have.
- For the TEMP_SENSOR lines, you have to know what kind of thermistor is used by your hot end and heated bed (if you have one). Set the values for these to ones that match the list directly above the lines.
- If you have an extruder on E0 and a heated bed, you just need to set TEMP_SENSOR_0 and TEMP_SENSOR_BED.
- Scroll down to MAX_HEATER_TEMP. If you know that your hotend shouldn’t go above a certain value (the Budaschnozzle should not exceed 240C-242C), then change it here. Same for MAX_BED_TEMP.
- Leave the PIDTEMP stuff alone for now, we’ll get back to it later.
- Further down the page, look for the Mechanical Settings area.
- For the INVERT_X_DIR and related lines, set it for Mendel if you are using a Mendel-type printer. Otherwise, consult the documentation for your printer design.
- The Prusa i3 is a Mendel printer.
- For X_HOME_DIR and the similar commands for Y and Z, look where your endstops are. If a endstop is configured to be at the 0 position for that axis, the setting here needs to be -1. Otherwise, it needs to be 1.
- The X_MIN_POS, X_MAX_POS, and related entries should correspond to the printable area on your bed. The defaults are common, but if you have a bigger/smaller print area, you will need to change this.
- Please note that 0,0 should be the cartesian “bottom left” of your print-bed, if your axis homes beyond the bed in any direction, you can use a *negative value* for the X_MIN_POS and Y_MIN_POS to compensate. (If your prints never wind up in the center of the bed, this is the culprit). Also See Configuring Marlin Bed Dimensions.
- Ignore the auto bed leveling area for now. Hopefully you will never need it.
- For the INVERT_X_DIR and related lines, set it for Mendel if you are using a Mendel-type printer. Otherwise, consult the documentation for your printer design.
- Time for the Feed rates and Steps/mm! You’re almost done.
- For #define DEFAULT_AXIS_STEPS_PER_UNIT, you will need to use the values you calculated for your different printer axes and extruder (see above). The order is {X, Y, Z, E}
- For DEFAULT_MAX_FEEDRATE, this is the fastest (in mm/s) the printer is allowed to go.
- For a Prusa i3, setting the Z axis value to 2 is a good idea.
- DEFAULT_MAX_ACCELERATION is something else that should be tuned based on how good you built the hardware of your printer.
- You should probably turn DEFAULT_ACCELERATION to a lower value initially (like 200) and adjust the acceleration later once you get everything calibrated and tuned.
- If you have an LCD or button panel for your printer, uncomment the respective lines for it. Otherwise, save because you are done!
- Click the Upload button.
- If all goes well, the firmware has uploaded.
You are now done with your initial configuration of Marlin! It should give you reasonable results, but there’s still a lot of setup to do. Head over to Triffid_Hunter’s_Calibration_Guide to continue tweaking your printer.
If you ever need to change one of these firmware settings, open the Marlin project with the Arduino IDE, make your changes to Configuration.h, and re-upload (make sure your host software isn’t connected when you try to upload).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 |
1.1.0 Marlin 1.1 represents an evolutionary leap over Marlin 1.0.2. It is the result of over two years of effort by several volunteers around the world who have paid meticulous and sometimes obsessive attention to every detail. For this release we focused on code quality, performance, stability, and overall user experience. Several new features have also been added, many of which require no extra hardware. The code has been significantly optimized in several areas, leading to fewer stutters, better delta performance, more reliable USB/Serial communication, and more consistent and deterministic results. Among the most significant improvements are: More consistent configuration with sanity-checking. Many more boards supported, with sane defaults for most common features. Improved thermal protection, enabled by default with tight margins for error. Improved Auto Bed Leveling with Bilinear Mesh and probeless operation. Unified Bed Leveling™ – Combining all forms of bed leveling in one package, plus tools like G26 Mesh Validation to improve leveling accuracy even further. Option to "fade" leveling compensation out over several layers to save computes on long prints. Support for up to 5 extruders with different geometries. Support for mixing and switching extruders. Linear Advance compensates for viscosity and pressure to reduce ooze and improve surfaces. Dozens of languages including Japanese, Galician, and Simplified Chinese. Significantly improved UI performance, especially Graphical Display. Display rate adjusts dynamically to prevent print stuttering. M600 Filament Change, Nozzle Clean, Nozzle Park, Auto Park on Pause, etc. Improved support for Bed Leveling probes and Manual Probing. Support for Trinamic steppers, i2c control, steppers as endstops. Endstops can use pin interrupts for improved performance. M43 Pins Debugging to report about, test, and monitor pins and endstops. Print Job Timer Sorted SD Card file listings. Improved host integration, extended capabilities report, keepalive messages, auto-report temperature, and more! Integrated I2C Bus allowing Marlin to interoperate on multiple boards. Support for Case Light, RGB LED, LED Strip. Printer events feedback. New features too numerous to list here. Read the config files for details! For complete Marlin documentation click over to the Marlin Homepage <marlinfw.org>. 1.1.0-RC8 to 1.1.0 Change Log Language #6422 : Polish font added #6032, #6437 : Updated Germain language #6458 : Updated Italian language #5406, #6463 : Update Turkish language #6465 : Update Czech language #6475 : Updated French language #6478 : Update Dutch language #6482, #6495 : Updated Spanish language New Features #3152 : SD files alphabetical sort in LCD menus #5887, #5942 : Double Click of Encoder Wheel Jumps to Z-BabyStepping #6154 : Show Filament Width on LCD when SD is disabled #6177 : Support for TinyBoy 2 3D printer (and its OLED display) #6187, #6533, #6410 : G33 Delta Auto-Calibration, Delta optimizations #6240 : Extend RGB LED with Printer Events #6285 : Cheaptronic V2 support #6284 : wt150 (Mightyboard Rev E) & RRD Full Graphic Smart Controller #6325 : M20 now includes file size in listing #6346 : Add support for SOLENOID_PROBE Configuration #5676 : Configuration.h - reword Z PROBE section #5762 : Z_DUAL_ENDSTOPS - make offset a configuration item #6256 : Use same config name for all mesh dimensions #6293 : Put TOSHIBA with other stepper driver options #6457, #6460, #6471 : "FolgerTech-i3-2020" & "gCreate gMax" example configs #6556 : Use USE_CONTROLLER_FAN for a controller fan Bug Fixes #5678 : G38 bug fix, made double touch optional & reverted to Z_MIN_PROBE #5854 : M600 cleanup and bugfix #5989 : Fix delta_angles #5994 : Fix makefile errors, cleanup #6088 : Make sure heaters are off in kill() #6139 : Board A4JP should be SCOOVO_X9H #6201 : Fix broken auto#.g, some other regressions #6212 : Fix LCD preheat menus #6213 : Init bed_level_virt_interpolate on EEPROM load #6215 : Fix thermal runaway when nonexistent bed temp is set #6309 : Fix incorrect MINIMUM_STEPPER_PULSE calculations #6311 : Have M109 / M190 do nothing with no parameters #6337 : CORExx endstop detection fixes #6341 : Fix lcd_babystep_zoffset() #6342 : Fix softspi variant conditional for 1284p #6362 : Only queue babysteps if axis is in a known position #6363 : Fixed a display initialization issue. #6487 : Fix issue in itostr4sign with numbers <100 #6490 : Fix endstop not enabled if pin is zero #6516 : DAC_MOTOR_CURRENT_DEFAULT for Rigidboard V2 #6530 : Fixes for DUAL_NOZZLE_DUPLICATION_MODE #6548 : Fix Dual-Z endstop conditional test #6557 : Keep refreshing LCD if hotend status is on-screen Bed Leveling #5729, #6114, #6214 : Improved BLTouch Support #6050, #6358 : Auto Bed Leveling without a probe (PROBE_MANUALLY) #6054, #6057, #6070, #6071, #6075, #6082, #6099, #6101, #6118, #6123, #6126, #6131, #6133, #6150, #6152, #6174, #6181, #6202, #6218, #6222, #6254, #6265, #6266, #6267, #6275, #6277, #6351, #6359, #6401, #6420, #6432, #6452, #6500, #6505, #6506, #6507, #6511, #6538, #6540, #6552, #6559 : Unified Bed Leveling #6332, #6245 : BABYSTEPPING updates Z probe offset (BABYSTEP_ZPROBE_OFFSET) #6251, #6258 : Fix bilinear leveling z offset #6248, #6289 : Option to output Bilinear grids in JSON (for visualization) #6300 : Fix mbl_mesh_report #6409 : Spend some SRAM to optimize bilinear leveling #6476, #6485, #6549 : BLTOUCH_HEATERS_OFF - during each probe Improvements #5794 : M600 wait for heatup, prevent stepper timeout, etc. #5984, #6278 : Additional Delta calibration settings #6100 : Enhancement of PWM, with dithering #6124, #6271 : Improved MCP4728 support (stepper current control) #6149 : Convert feedrate on SCARA from mm/s to deg/s #6190 : Message for every KILL and STOP (also need delays) #6220 : Implement M421 for BiLinear and UBL #6264, #6281, #6282 : Add Support for up to 5 extruders #6272 : Make ADC sensor reading frequency adjustable #6283 : Save / restore z_fade_height in EEPROM #6315 : M421 for all forms of bed leveling #6330 : Sanity check per-axis options' array sizes #6348 : Improved support for TMC2130. #6368 : Add Linear Advance values to EEPROM and LCD #6406 : New Marlin git Unix/Linux/macOS helper scripts #6508 : PlatformIO-related improvements #6567 : Shutdown heaters, autotemp on SD Cancel LCD / Controllers #6313 : Allow 10mm Movements for Z-Axis Code Cleanup #6035, #6210, #6217 : Improved git integration #6176 : Make MBL a static class, use lookup for index-to-point conversion #6208 : Patch MarlinSerial to match up with 32-bit version #6209 : Power Supply 0 as "General" #6354 : Fix undefined symbol if DOUBLECLICK_FOR_Z_BABYSTEPPING and HAS_BED_PROBE defined #6373 : Fix Makefile build #6382 : Fix double definition in configuration_store #6400, #6418, #6443 : Interrupt helper macros #6527 : Patch DELTA_HEIGHT, BLTOUCH init #6537 : Leveling-related patches #5908, #6266, #6296, #6297, #6307, #6352, #6353, #6367, #6403, #6429, #6431, #6453, #6491, #6509, #6515, #6519 : Code cleanup and optimization Debug/Troubleshoot #5668 : Improved Pins Debugging. More features, less RAM #6219, #6327 : M43 - add Toggle utility and Z servo utility (replaces PR #5864) #6302, #6306, #6334 : Improved M100 Free Memory Checker #6350 : Add more Dual X logging 1.1.0-RC8 This release candidate aims to be the last before the official 1.1.0 release. Please report any issues you experience. The faster we can find and fix bugs, the sooner 1.1.0 will be ready! Known Issues Graphical display is laggy even when the machine is idle. Working on it. The mesh can't be saved with AUTO_BED_LEVELING_BILINEAR. Working on it. SCARA needs some work. Stick with 1.0.2-2 or an earlier 1.1.0-RC. New / Updated Features #4595, #4606, #4608, #4620, #4625, #4718 : Improved i2c messaging #4667 : Add M211 to Enable/Disable Software Endstops #4722 : Add MINIMUM_STEPPER_PULSE option #4832, #5088, #5094 : Enable M0/M1 with M108 (EMERGENCY_PARSER) #4833 : Remove SCARA axis_scaling #4840 : Add support for G2/G3 with R parameter #4900 : Add G38.2 / G38.3 commands for CNC-style probing #4955, #4974, #5118, #5132 : PINS_DEBUGGING and M43: Read pin states #5082 : Only trigger MAXTEMP error during heating #5133 : Add M355 to turn the case light on/off and set brightness #5109 : Save configured hotend offsets to EEPROM #5179 : Support for Trinamic TMC2130 SilentStepStick drivers #5188 : Add M155 auto-report temperature (AUTO_REPORT_TEMPERATURES) #5188 : Add M115 capabilities protocol (EXTENDED_CAPABILITIES_REPORT) #5238 : Support for AUTOTEMP options in M104 (not just M109) #5184, #5252 : Support endstops interrupts to improve performance #5255 : Case Light menu item (MENU_ITEM_CASE_LIGHT) #5330 : Support for a 3-pin RGB LED (RGB_LED) #5371 : Each E stepper can have different steps/mm, acceleration, max feedrate Code Cleanup & Documentation #4537, #4602, #4650, #4655, #4665, #4691, #4693, #4721, #4749, #4779, #4797, #4836, #4895, #4941, #4993, #5053 : Code cleanup and documentation #4703 : Add note suggesting RAMBo users use the RAMBo board type or platformio environment #4893 : Define status LED pins without condition #5289 : Eliminate 'unused function' warnings in ultralcd.cpp #5394 : Remove board ID 99 (demo board). Use other board files as templates. Planner & Stepper #4868, #4982, #5070, #5214 : Optimization of leveling and planner code #4611 : Use acceleration limiting based on BQ Marlin #4720 : Patch stepper.cpp to allow omitting steppers #4738 : Optimize stepper ISRs, plus cleanup, shorthand #4754 : Fix bug in mixing extruder mix factors #4852, #4980, #4984, #5056, #4963, #5124 : Fixes for Advance Extrusion #4936, #4997 : Adapt Jerk / Speed code based on Prusa MK2 #5074 : Fix and optimize planner acceleration #5115 : Do more pre-calculation in buffer_line before waiting for a free block Performance & Stability #4554 : Repair SPI-pins, some other pins #4564 : MISO is an input #4569 : Always disable SLOWDOWN for DELTA/SCARA #4572 : Show up to 99:59 in digital time #4573 : Throw MINTEMP BED error only if heating #4594 : Fix serial output for MBL, M303 #4605 : Fixup 3DRAG pins based on updated RAMPS pins #4610 : Fix stopSDPrint so it works when paused #4621 : Init PWM-able AUTO_FAN pins with SET_OUTPUT #4688 : Repair MarlinSerial with TX-buffer #4748 : Patch duration_t toDigital method #4804 : Fix some regressive typos in G29 #4820 : Fix Pin Definition Files to define USBCON #4834 : Standardize code_value_bool for flag parameters #4859 : Kinematic and SCARA patches #4860, #4883 : Fix BLTOUCH string and SERVO_DELAY #4887 : Improve MINIMUM_STEPPER_PULSE #4889 : Fix HEATERS_PARALLEL #4914 : Clean up PID algorithm for heaters #4954 : Fix buzzer when both i2c and beeper pin are set #4991, #5036 : Patches for Stepper DAC and MAX31855 #5033 : Fix freezing and MINTEMP Error with MAX31855 thermocouple #5071 : Extend measurement range of MAX31855 #5087 : Fix Azteeg X3 servo pins #5110 : Include Z2 min endstop in M119 output #5148 : Fix Z raise in Dual X auto-park mode #5175 : Fix various Dual X Carriage and Dual Z issues #5144, #5230 : Fix and optimize LIN_ADVANCE #5212, #5228 : Fix and optimize MIXING_EXTRUDER #5258 : Fix MBL Z feedrate #5267 : Fix LCD edit items to support over 999 steps/mm #5288, #5303, #5389 : Graphical LCD optimizations to reduce print lag Configuration #4535 : Move tests for old symbols to the top of sanity check #4666 : dropsegments => MIN_SEGMENTS_FOR_MOVE #4669 : PREVENT_DANGEROUS_EXTRUDE => PREVENT_COLD_EXTRUSION #4673 : MIN_SEGMENTS_FOR_MOVE => MIN_STEPS_PER_SEGMENT #4727 : Add heading for movement settings #4765 : Sanity check endstop plugs based on homing direction #4805 : Additional documentation of Configuration.h #4821 : Z Raise/Clearance rather than Height #4842 : Drop DISABLE_Z_MIN_PROBE_ENDSTOP, clean up probe config #4919 : K8400 has 1xXY and 2xZ endstop plugs #5072 : Pre-define auto fan pins. EXTRUDER_n_AUTO_FAN_PIN => En_AUTO_FAN_PIN #5141 : Remove obsolete OLD_SLOWDOWN option #5371 : Allow E steppers to have different factors (DISTINCT_E_FACTORS) Homing and Bed Leveling #4551 : Make Allen Key Probe stow #4562 : Fix Z_DUAL_ENDSTOPS with Z MIN Homing #4563 : Explain that Z_PROBE_*_HEIGHT options are nozzle-relative #4651 : Improvements to homing / leveling #4660 : Fix zigzag moves with MBL #4709 : Log whether homing with probe or endstop #4710 : Bed leveling that accounts for home XYZ #4719 : Marlin patches for homing, esp. Delta #4781 : Use simplified Z correction in G29 when possible #4789 : Big cleanup of leveling code #4835 : Allow non-square Auto Bed Leveling grid #4837 : Handle nonlinear bed-leveling in Planner #4839, #4856 : Better BLTOUCH support #4851 : Patch G29 for 3-point leveling #4875 : Use probe clearance for bump when homing Z with probe #4888 : Suppress warnings, fix nonlinear_z_offset #4899 : ABL: Enable by type. Bilinear grid leveling for all. #4918 : Add PROBE_Y_FIRST option. Arduino 1.6.8 required. #4927 : Don't check Z_MAX endstops on raise when the probe pwns the pin #4958 : Improve M48 output; Add min, max, range, etc. #5097 : Fix Y endstop bit set by Z2 or probe #5224 : Apply limits in G30, report correct XY #5264 : Make Delta Safe Zone homing optional (DELTA_HOME_TO_SAFE_ZONE) #5299 : Extend M420 with Z to limit compensation to a given height #5388 : Bilinear subdivision via Catmull-Rom (ABL_BILINEAR_SUBDIVISION) Mesh (Manual) Bed Leveling #4555 : Remove premature int-cast from MBL cell index methods #5008 : Save some PROGMEM in MBL G28 #5057 : Fix manual leveling coordinates LCD Controllers #4553 : Save bytes for custom chars (Hitachi LCD) #4570, #4571, #4584 : Make DELTA_CALIBRATION_MENU universal #4574 : Include days in Graphical LCD print timer #4597 : Added hyphenated strings for full graphic display #4747 : Option to show SD percent on Graphical LCD #4803 : Clear LCD button state, apply timer to all #4967 : Revised DAC Drive Strength Menu #5059 : Set defer delay back to false when exiting babystepping #5089 : Better handling of encoder clicks #5176 : Instant feedback for (M600) Filament Change #5209 : Megatronics has no SD Detect #5298 : Fix Turkish and Greek font descents #5303 : Draw no more than 4 stripes on graphical LCD #5304 : Draw a hollow frame to optimize graphical LCD (`MENU_HOLLOW_FRAME #5313 : Refine preheat options for multiple nozzles #5378 : Right-align or center elapsed print time #5385 : Show decimals for small XY values (LCD_DECIMAL_SMALL_XY) Languages #4603 : Strip never-translated strings from language files #4634 : Set language display charset in language.h #4530, #4542, #4578, #4806, #4822, #5043 : Updated German language (Thanks AnHardt, Kaibob2, and blubbfish!) #4624 : Updated Spanish language (Thanks RicardoGA!) #4642 : Updated Russian language (Thanks mkile, lcfm1!) #4649, #4723 : Updated Danish language (Thanks boelle!) #4685, #5066 : Updated French language (Thanks gege2b!) #4815, #5347 : Updated Italian language (Thanks tnw513!) #4885, #4943, #4981, #5233, #5292 : Updated Japanese language (Thanks esenapaj!) #5065, #5351 : Updated Czech language (Thanks petrzjunior!) #5167, #5284 : Turkish language support (Thanks Rigid3D!) #5323 : Ukrainian language support (Thanks akaJes!) #5364 : Updated Croatian language (Thanks robimarko!) #5386 : Update Galician language (Thanks rafacouto!) #5387 : Update Polish language (Thanks c64pl and android444!) For Developers #4196 : Add PlatformIO support #4556 : Within Marlin, maintain most feed rates in mm/s #4652 : Add Rambo support/env to platformio.ini; properly map extended pins #4717 : Debug logging of nozzle type and offsets #4725 : Log machine info in G28 and G29 #4756 : Makefile fix for Arduino 1.6.9 unzipped #4857 : Arduino 1.6.10, direct download U8glib in Travis CI #4934 : More detailed debugging of G28 delta #4972 : Move platformio directories out of source tree #5226 : Bump -std in Makefile to C++11 #5251 : Support for CMake build #5358 : Improved missing translations shell script 1.1.0-RC7 #3611 : Add M108 command to cancel M109, M190, and M303 #3625, #3813, #3819, #4298 : Add Print Job Timer and statistics (PRINTCOUNTER) #3653, #4106 : Add temperature watch for the heated bed (WATCH_BED_TEMP_PERIOD) #3662 : New Filament Change feature (FILAMENT_CHANGE_FEATURE) #3676, #4035, #4040, #4126 : New advance extrusion algorithm (LIN_ADVANCE) #3720 : Use a positive flag for Host Keepalive (HOST_KEEPALIVE) #3789 : Add M999 S1 to restart without flushing the buffer #3806 : Add CoreYZ support, fix CoreXY, CoreXZ (COREYZ) #3808, #3895 : SINGLENOZZLE basic multi-extruder support #3985 : Support for inches, Fahrenheit, Kelvin (INCH_MODE_SUPPORT, TEMPERATURE_UNITS_SUPPORT) #3992 : Add error-checking of E parameter in M303 #4013 : Add S parameter to stay in place on tool-change. Example: T1 S1 #4053, #4060, #4094, #4158 : Add support for the Cartesio UI (BOARD_CNCONTROLS_12) #4159 : Support for RigidBot V2 and its digipot (BOARD_RIGIDBOARD_V2) #4192: Support for Vellemann K8400 (BOARD_K8400) #4054, #4354 : Add NOZZLE_CLEAN_FEATURE #4163, #4339 : Add MIXING_EXTRUDER and SWITCHING_EXTRUDER #4222 : Add P parameter to M302 (more like RepRapFirmware) #4226 : Add EMERGENCY_PARSER to allow override commands #4241 : Add a serial transfer buffer option (TX_BUFFER_SIZE) #4244 : Dyze High Temperature Thermistor support (up to 500°C) #4271, #4279 : Add X_DUAL_STEPPER_DRIVERS option #4299 : Add NOZZLE_PARK_FEATURE #4305 : Drop-in custom boot screens #4336 : Add support for BLTouch sensor (BLTOUCH) #4362 : Add DUAL_NOZZLE_DUPLICATION_MODE #4408 : Add support for REPRAPWORLD_GRAPHICAL_LCD Performance & Stability #3613 : Fix an issue with sudden acceleration #3642 : Suppress host keepalive during M109 / M190 #3650 : Prevent stuck M109 / M190 if a target temperature is changed #3661 : Fix handling of UTF-8 characters in SD card filenames #3751 : Fix long G2/G3 arcs blocking machine idle #3757 : Don't allow setting auto fan pins in M42 #3781 : Improved performance in Delta movement #3788 : Improvements for Dual X Carriage #3797 : Less blocking in G2, G3, and G5 #3828 : Fix endstops default enabled state #3829, #4010 : Fix position adjustment when switching extruders #3888 : Fix issues with MAX31855 thermocouples #3909 : Fix initialization of some arrays #3939, #4214 : Reduce positional error, clear command queue on "Stop print" #3955, #3958 : Fix M428 for compatibility with Delta and SCARA #3995, #4140 : Beeps and tones no longer stall execution #4012 : Prevent bad watchdog timeouts #4092 : Add reporting of SD read errors #4095, #4097 : Fix issues with Filament Runout Sensor #4165 : Bring RUMBA pins file up to current methods #4167 : Add a checksum to the EEPROM to detect errors #4169 : Fix wait-for-cooling in M109 / M190 #4204 : Adjust software endstops, if needed, on tool-change #4250 : Adjust wait-for-cooling timeout #4253, #4257 : Broader support for filament runout sensor #4256, #4278, #4291 : Optimizations for single-hotend setups #4258, #4287, #4321, #4327, #4374, #4376, #4390 : Fix and improve print job timer and counter #4280 : Fix write-to-file serial output #4287 : Support for prints over 18h 12m 15s in the print counter #4360 : Fix issues with G28 when T0 isn't the active tool #4365 : Tweak planner acceleration constraint #4370 : Add DELTA forward kinematics (to get XYZ from ABC) #4389 : Optimize planner code with less float division #4402 : Fix bugs related to the shifted coordinate space Configuration #3609 : Add versioning to the configuration files #3632 : Simplified language setting in Configuration.h #3672 : Simplified probe configuration #3702 : Simplified pins files #3779 : Automatic assignment of X2, Y2, Z2 stepper connectors #3928 : Clean up Delta configuration examples #4065 : Remove support for XY servo endstops #4252, #4292 : Generalize options that specify PLA and ABS #4296 : Update BQ Hephestos 2 configuration #4306 : Replace ENDSTOPS_ONLY_FOR_HOMING with ENDSTOPS_ALWAYS_ON_DEFAULT #4337 : Change endstop-inverting options from const bool to define #4398, #4400 : Sanity checking of safe homing, temp sensors #4414 : Remove all #include from Configuration.h / Configuration_adv.h Homing and Bed Leveling #3707 : Fix curved movements in G29 for Delta #3775 : Report current position to host after G29 #3782 : Require homing of Z before G29 bed leveling #3798 : Allow using probe indices (I and J) with M421 Set Probe Point #3942 : Fix servo probe raise in G28 and other non-leveling contexts #4021, #4066, #4085, #4093, #4108 : Allow the use of probes without Auto Bed Leveling #4181 : Fix curved movements in Allen Key deploy & stow #4207 : Clean up Allen Key code, allow use on Cartesian machines #4217, #4235 : Fix MIN_Z_HEIGHT_FOR_HOMING cumulative raising #4307, #4320, #4323, #4342, #4356, #4358, #4361, #4368, #4373, #4381, #4387 : Major cleanup of homing and leveling #4308, #4330, #4378, #4379 : Improved logging of homing and leveling Mesh (Manual) Bed Leveling #3760, #3903, #3911 : Improved Mesh (Manual) Bed Leveling #3802 : Add MBL resting position after homing (MESH_G28_REST_ORIGIN) #3956, #4199 : Keep Mesh Bed Leveling active when homing X, Y, or Z alone #4146 : Allow Mesh Bed Leveling to work when homing to max Z #4154 : Use Z_RAISE_BETWEEN_PROBINGS for Mesh (Manual) Bed Leveling #4202 : Fix position adjustment for MBL when switching tools LCD Controllers #3110, #4001 : Improved axis movement from the LCD controller #3670 : Use directional buttons on controllers that have them #3739 : Option to reverse the encoder wheel (REVERSE_ENCODER_DIRECTION) #3740 : Add individual axis homing to the LCD menu #3762 : Don't display heated bed on Graphical LCD if no heated bed #3914, #3944 : Fix LCD contrast adjustment range for different panels #3936 : Support for SAV_3DGLCD OLED LCD controller #4025 : Fix manual LCD movement with multiple extruders #4057 : Show millimeters (not steps) moved in LCD babystepping #4168, #4277 : Support VIKI2 display with RAMPS and MKS 1.3 / 1.4 #4188, #4201 : Add Printer Info and Printer Statistics to the LCD menu #4243, #4309 : Improve static/scrolling LCD screens #4254 : Show full kill screen (not just message line) #4265 : All new beeper / speaker / buzzer code and tone queue #4285 : Remove delay for small manual encoder axis moves #4357, #3957 : Improvements for the RepRapWorld Keypad Languages #3712, #3746, #3785, #4185, #4341 : Updated Japanese language #3748, #3976, #4228, #4259, #4415 : Updated Czech language #3754 : Updated Portuguese language #3787, #3952 : Updated Galician language #3805 : Updated Polish language #3932, #3933, #3950 : Updated Danish language #4024, #4274: Add Greek language (el, el-gr) #4029, #4329, #4395 : Updated Italian language #4055, #4069 : Add Croatian language #4078 : Updated Spanish language #4229 : Updated German language For Developers #3224 : Fix Makefile for Melzi and Arduino 1.6.x #3631, #3643, #3660, #3671, #3681 : Stepper, Planner, Endstops, Temperature as singletons #3715, #3803 : Clean up the buildroot folder #3922, #3923, #3924, #3925, #3926, #3947 : Optimize singletons with static data & methods #4043 : Add a non-blocking delay function #4023, #4049 : Add macros for moving servos #4034 : Allow the use of a custom image to display at startup #4080, #4081, #4096, #4100, #4134, #4162, #4183 : Cleanup of probing / leveling functions #3567, #4056 : Add helper scripts to make working with Marlin and Git easier #4064, #4074 : Additional patterns added to .gitignore #4186 : Add generalized macros to initialize variable-size arrays #4245 : Simplify thermistortables.h #4272 : Fix M100 issues (M100_FREE_MEMORY_WATCHER) #4286 : Make it easier to do formatted debug output #4319 : Specify units (mm_s or mm_m) in feedrate variable names #4355 : Rename ultralcd implementation files #4397 : Cleanup to EEPROM read/write code #4404 : Cleanup to stepper indirection code #4232, #4234, #4335, #4340, #4353, #4349, #4355, #4359, #4369, #4372, #4383 : …and more code cleanup 1.1.0-RC6 Cleanup and fixes for Info Screen on graphical displays Simplified endstop configuration – just set which plugs are used Improvements to the LCD menu manager: Implement proper Forward / Back menu navigation Allow menu screen handlers to wait for a condition REVERSE_MENU_DIRECTION makes CLOCKWISE move UP in menus Improved Mesh / Manual Bed Leveling Lift nozzle between probe points if using MIN_Z_HEIGHT_FOR_HOMING Improved LCD interface with more feedback Fix Sainsmart 2-in-1 pins include Fix graphical display when no PWM fan is present Fix LCD command "Move Axis" > "Y Axis" Patch for endstops in Hephestos configuration Set DEFAULT_NOMINAL_FILAMENT_DIA to 3.0 for some configs Fix DEFAULT_SOURCE_URL issues (e.g., with RUMBA) Fix LCD babystep menu items Fix temperature 0 display with MAX31855 thermocouple Updated Japanese translations Completed CoreXY / CoreXZ implementation for all standard features Improvements to Mesh and Manual Bed Leveling More changes to be listed soon… 1.1.0-RC5 Fix LCD blinking speed when using encoder Fix various LCD menu issues Manual Bed Leveling: Improve LCD display of MBL Add formal support for MKSv1.3 and Sainsmart (RAMPS variants) Fix compile issues and apply general code improvements Fix failure to deploy/stow servo probes on Delta machines Fix print job timer failing to start Fix wait-for-heating bugs in M104, M109, and M190 Fix "heating failed" error when heating a second time Rename FILAMENT_SENSOR to FILAMENT_WIDTH_SENSOR Warn if compiling with older versions of Arduino Fix bad string pointers in two LCD menu items Updated Japanese fonts and translations Fix broken M404 command More output for M111 Fix SD card reader subcalls in subfolders Fix issues with M23 and "Start SD Print" Fix bug with escaped characters in GCode comments sent by host Relax default settings to reduce "heating failed" errors Increase host keepalive interval from 2 to 10 seconds Fix a bug opening SD files that begin with a number Fix for the PCF8575 backlight Mesh Bed Leveling: Fix final move to Z=0 Mesh Bed Leveling: Allow Z level fine-tuning via G29 S4 1.1.0-RC4 CoreXY and CoreXZ: #3127: XY BABYSTEPPING for CoreXY and CoreXZ #2995: Add CORE support to st_get_position_mm (and elsewhere) Hosts, GCode: #3109: Add "Host Keepalive" (enabled by default) to inform hosts when Marlin is busy #3219: Send position to hosts after some commands. #2983: Remove "ok" from the output of M280, M301, M304, M851 #3052: Fix "M145" output in M503 report #3108: Improved handling of M110 for hosts #2985, #2987, #3051, #3044, #3027, #3111: Many more fixes for GCode handling LCD Controllers and SD cards: #3114: Option to reverse the click-wheel direction in menus #3202: M303 PID Autotune from the LCD menu, applying the result #3156: Fix CardReader::lsDive() #3157: Use variable in lcd_erase_line() #3151: Update the pt-br translation #3116: Fix value edit click bugs #2989: Blink XYZ on display when positions are uncertain #2942: Better number format for editing Delta Jerk and Z Steps #2973: Update splash screen with current no-domain f18d3f4: LCD-based movement better-constrained for Deltas (#1869) Minor bugs: #2902: Fix Z min endstop stepper.cpp #3161: Fix initial extruder direction for second/third/fourth extruder if they run inverted to the first #3050, #3126: Fix stack overflow issue with many LCD movements #3132: Fix a bad "heating failed" error when starting to reheat a warm extruder #3092: Fix Printrboard with LCD #3077: Prevent a kill() from rebooting with USE_WATCHDOG enabled #3066: Fix disable_all_heaters() for MAX6675 #2848: Fix Rigidbot LCD Panel Support #2821: Fix status LEDs update when reinitializing the display #3222: Fix endstops disabling after homing, even without ENDSTOPS_ONLY_FOR_HOMING #3197: Fix conflict between servos and PWM current control #3177: Save all M665 parameters in EEPROM Homing, Bed Leveling: #3164: Fix #3160 - MESH_BED_LEVELING broke correct G1 movement in Z #3107: MIN_Z_HEIGHT_FOR_HOMING replaces Z_RAISE_BEFORE_HOMING #3107: Adjustments to Z Raise options for probes and homing #3102: Bugfix: G28 was lifting Z-axis multiple times #3013: Enhanced #3010 - formal Mesh/Manual dependency #3057: Fix Z_RAISE_AFTER_PROBING for non DELTA printers #3001: Fix Z-raise order with Z_SAFE_HOMING #2978: Apply Auto Bed Leveling matrix when switching extruders #3089: Fix raise_z_for_servo for Z offsets below the nozzle #3124: Update the bed topography output in G29 New Hardware Support: #3112: Formal support for the MAX31855 thermocouple #3182: Support for Printrboard Rev F #3086: Support for multiple PWM fans (for extruders) #3201: Hephestos configuration improvements New and Experimental Features: #3069: Very New support for DELTA with M48 Probe Repeatability Test #3043: Example configuration for Kossel XL #2976: Move the experimental Configurator to its own repository Configurations: #2988: Automatically assign the next open E connector for Y2/Z2 #3131: Allow override of PWM_MOTOR_CURRENT in configuration #3105: Much cleanup of configuration descriptions and code comments #3053: Improve description for nozzle-to-probe offsets #2986: Enable USE_WATCHDOG by default #3031: Fix board type for Hephestos: RAMPS 1.4 #2868: Fix AUTOTEMP documentation in configs #3018: K8200: sample config back in sync And... Many cleanups to the code: #2974, #2992, #2994, #3005, #3024, #3067, #3090, #3101, #3119, #3121, #3123, #3140, #3146, #3147, #3149, #3150, #3153, #3199 Lots of language improvements: #3180, #3192, #3194, #3217 1.1.0-RC3 Handle temp callbacks when THERMAL_PROTECTION_HOTENDS is not defined Update LCD buttons less frequently Add BABYSTEP_MULTIPLICATOR applying to all babystepping Update reference to the Marlin wiki Suppress Z_MIN_PROBE_REPEATABILITY_TEST for DELTA and SCARA configurations Use separate MOTHERBOARD values for RAMPS 1.3 and 1.4 Fix XY formatting on LCD Enable thermal protection when setting temp from LCD Fix GCode parser to allow the letter "N" in strings Clean up watchdog implementation MSG_EXTRUDER_SWITCHED_OFF renamed to MSG_REDUNDANCY Fix DUAL_X_CARRIAGE motor enabling Fixed various code bugs and compiler issues Clean up spacing in code and configurations Updated Japanese Kana language Fix Portuguese (Portugal) strings Added Galician (gl) language support 1.1.0-RC2 Reduced binary size, depending on your configuration. 7 new languages supported: Bulgarian Chinese Czech Danish Galician Japanese Katakana Brazilian Portuguese The large pins.h file has been split up into separate files - one for each unique board. New electronics supported in 1.1.x - (See boards.h file): BOARD_BRAINWAVE_PRO (85): Brainwave Pro BOARD_BAM_DICE (401): 2PrintBeta BAM&DICE BOARD_BAM_DICE_DUE (402): 2PrintBeta BAM&DICE Due. BOARD_FELIX2 (37): Felix 2.0+ BOARD_K8200 (78): Vellemann K8200 Controller (derived from 3Drag Controller) BOARD_MEGACONTROLLER (310): Mega controller BOARD_MINIRAMBO (302): Ultimachine Mini-RAMBo BOARD_MINITRONICS (702): Minitronics v1.0/1.1 BOARD_MEGATRONICS_3 (703): Megatronics v3.0 BOARD_MKS_BASE (40): MKS BASE 1.0 Dropped support for BOARD_DUEMILANOVE_328P. BOARD_MELZI_1284 renamed to BOARD_MELZI_MAKR3D. LCD Probe Z Offset now shows the actual (usually negative) offset value. Improved support for Delta, SCARA, and COREXY, and COREXZ kinematics. Fixed bugs with Dual X Carriage setups. Move parts of Configuration files to Conditionals.h and SanityCheck.h. Clean up of temperature code. Fix handling of invisible SD files. Files and folders starting with underscore are now visible. Enhanced G29 with improved grid bed leveling based on Roxy code. See documentation. EEPROM layout updated to V21. Short EEPROM output as G-Code – Replay to restore settings. Use M503 S0. Added M204 travel acceleration options. M204 "P" parameter replaces "S." ("S" retained for backward compatibility.) Support for more RAMPS-based boards. Support for Mega Controller and Minipanel. M404 "N" parameter replaced with "W." ("N" is for line numbers only). Improved support for Cyrillic and accented languages. Fix M303 so it doesn't swallow commands while running. LCD controller knob acceleration. Makes it quicker to select settings values. ENCODER_RATE_MULTIPLIER Improved compatibility with various sensors, MAX6675 thermocouple. Improved support for M110, with or without the extra N parameter. Filament Runout Sensor support. (FILAMENT_RUNOUT_SENSOR) Filament width measurement support. (FILAMENT_SENSOR) Support for TMC and L6470 stepper drivers. Improved support for Texas Instruments DRV8811 stepper drivers. Support for the SSD1306 Monochrome 128X32 I2C OLED Graphic Display. Better support of G-Code ; comments, \, N line numbers, and * checksums. Fixed an issue causing too many "cold extrusion prevented" messages. Fixed LCD display of Volumetric Multiplier. Now shows percent instead of scaling value. Preliminary support for M111 with debug flags TBD. Support for Repetier DEBUG_DRYRUN flag. Use M111 S8. Detailed logging to debug Auto Bed Leveling. Use M111 S16. Added FAN_MIN_PWM configuration option • Cleaned up code formatting 1.0.2 Added "Detailed Z Probe" menu item for Automatic Bed Leveling. Fixed: #1038 Steppers were disabled during filament change. Display Z position on LCD without leading and trailing zeros. Fixed: #1315 DOGLCD and LCD_PROGRESS_BAR conflict. Fixed CoreXY incorrect speed calculation. Improved support for thermal relays. SLOW_PWM_HEATERS Fixed: Re-calculate volumetric when mm3 is enabled, update LCD menu. Fixed CreateTemperatureLookup.py script domain issue. Fixed an overflow issue in thermal runaway to prevent false timeout. Added support for SAV-MkI and SAV 3D LCD. Added a Delta Calibration sub-menu option. DELTA_CALIBRATION_MENU Added Filament menu. Include retract/recover settings in EEPROM storage. Improved support for Travis CI build testing. Fixed a compile error with REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER. Documentation: Assert that X and Y probe offsets must be integers. 1.0.1 Progress bar for character-based LCD displays. SD Card folder diving up to 10 levels deep. Added support for Melzi electronics. Fixed issues with Babystepping. Fixed issue with out-of-order command acknowledgement. Split up languages.h into separate files. Added names for board numbers and boards.h file. Support for Toshiba stepper drivers. M0 / M1 message string support. |
Download Marlin @ Github.com
Download Marlin @ Github.com (releases)
[#/mechanica/firmware/Marlin” ]