@XPila XPila released this Jul 2, 2018 · 860 commits to MK3 since this release

Assets 13



  • recurring crash detection limit
  • crash detection and filament runout detection improvements and bugfixes (focused on Octoprint and USB printing)
  • fixed erroneous movements during stop print
  • supports multiple languages
  • M86 gcode for safety timer
  • temperature calibration improvements
  • power panic fix
  • supports remaining time estimation provided from Slicer (support in the future versions of Slicer)


  • Filament runout detection fixes and improvements (focused on Octoprint and USB printing)
  • fixed erroneous movements during stop print
  • different language variants
  • M86 gcode for safety timer
  • temperature calibration improvements
  • supports remaining time estimation provided from Slicer (support in the future versions of Slicer)

Detailed description of changes:

Crash detection and filament runout detection fixes and improvements:

Recurring crash detection limit:

Crash detection procedure has been extended. If three crash detection occurs in short time frame (less then 45 seconds between two following crash detections) print is paused and user is asked if he wants to resume print or stop print. This should overcome problems when printer is stucked in loop trying to automaticly resume printing (related to issue #815).

USB printing:

Crash detection and filament runout detection was inaccurate when printing over USB. Some gcode lines were skipped when resuming from crash detection/filament runout detection which caused discontinuity in printed object. This has been fixed in current firmware version and tested with Octoprint. For correct behaviour, lines sended over USB must be stamped with line number. Printer sends resend request with line number when resuming USB print after crash detection/filament runout detection.

During filament runout detection with Octoprint connected communiacation timeouts occured in some cases. This was caused by missing "busy: processing" messages. It has been fixed in curent firmware version (PR #831 ).

Crash detection/filament runout detection always set flag that it was previously printing from SD card even in case that crash detection/filament runout detection occured during USB printing. This led to undesired printer behaviour such as printer status line malfunction (issue #843) It has been fixed in current firmware version.

M27 - get SD status fix:

When M27 gcode is received and file from SD card is currently printed, printer sends information about filesize and byte which is currently printed. This usually serves for showing print progress. If there is no active SD card print, printer sends "Not SD printing" to host. When printing from SD card printer was returning "Not SD printing" during crash detection and filament runout detection which was undesired. For example when Octoprint sended M27 request during crash detection it received "Not SD printing" and reacted with turning off nozzle and heatbed heating.

Erroneous movements fixed:

This is related to issue #823 and could occur during crash detection/filament runout detection/stop print when printing objects with long linear segments. This has been fixed in PR #860.

Other improvements:

  • Crash detection retraction fix and Z axis movements improved
  • Crash detection fix for absolute Extruder coordinates
  • Safety timer not active during filament runout procedure

Different language versions:

There are new language variants added to MK3 firmware. Firmware currently supports these languages:

  • English
  • Czech
  • German
  • Spanish
  • Italian
  • Polish

It is necessary to use new Slic3r Prusa Edition 1.40.1-beta version or higher to flash firmware with all language variants into MK3. If you use standard firmware updater, there will be just English language present.

MK2.5 is currently just bilingual (English + secondary language) and there are different hex files for different languages and there is no need to use Slic3r for flashing MK2.5 firmware.

M86 gcode for safety timer:

Safety timer is feature which turns off nozzle and bed heaters in case that nozzle or heatbed target temperature is set to non-zero value and printer is idle for more than 30 minutes. We have added gcode which serves for setting safety timer period (in seconds) and it can also disable this feature by setting safety timer period to zero. Main reason for implementing this gcode was possibility to disable safety timer when pausing USB printing (by sending M86 S0) and then enable it again (M86 S1800) when resuming print (when USB print is paused, printer is actually in idle state, but heatbed should stay hot).

Temperature calibration improvements:

  • crash detection is always used (normal mode is forced) during temperature calibration Z movements, auto home and mesh bed leveling
  • all XY movements are always performed in safe distance from heatbed
  • Z axis homing improved
  • If XYZ calibration has not been run yet, temperature calibration is terminated and user is asked to run XYZ calibration first (because accurate position of calibration point for homing Z axis without steel sheet has to be known).

Power panic fix:

There was bug in storing/recovering short filenames during power panic. This caused that in some cases print was not resumed. It has been fixed.

Remaining time estimation support:

Current firmware version is ready to display remaining time estimation and accurate progress on printer status screen. Information about remaining time and progress will be accuratelly counted by Slic3r and inserted into gcode file. Gcode M73 is used for this. Using: M73 Pxxx Qxxx Rxxx Sxxx. P is percentage done for normal mode, R: time remaining for normal mode in minutes, Q: percentage done for stealth mode, S: time remaining for stealth mode. Current Slic3r version doesn't support it yet. In case that there are no M73 gcodes in file, printer behave as in previous release versions, i.e. showing time from print start. More information about this feature will be added after Slic3r release.

Status screen was slightly modified because of this feature. Symbol "SD" is now shown on printer status screen only during active SD print (i.e. not in idle state) together with progress in percentage. When printing over USB, there is "USB" symbol shown together with progress in percentage.


  • M860 communication timeouts fixed
  • MK2.5 with Rambo 1.0 - filament sensor function fixed