Skip to content

Releases: prusa3d/Prusa-Firmware

3.5.0 Firmware for Prusa i3 MK3 and MK2.5

22 Nov 22:49
9087645
Compare
Choose a tag to compare

This firmware version was focused on finalization of features from previous 3.5.0-RC1 firmware version. For the detailed description of all features and improvements please check also 3.5.0-RC1 change log.
New Slic3r settings which will contain new Tx and Tc codes used in single mode (for printers with MMU2) will be released soon.

Summary of changes (compared to 3.5.0-RC1):

  • Z-levelling fix
  • M500 - M503 fix
  • FINDA dependency on optical sensor fixed
  • Translation corrected
  • Progress bar display during M600 fixed
  • Pause print communication timeouts fixed

Detailed description of changes (compared to 3.5.0-RC1):

Z-levelling fix:

A feature called "Mesh bed levelling fail triggers Z-levelling" was added in previous firmware version. However, there was one bug which caused that after Z-levelling coordinates were shifted in Z. This has been fixed.

FINDA dependency on optical sensor fixed (printers with MMU2):

In the previous firmware version, we have improved FINDA independency on the optical filament sensor. However, there was still a scenario where FINDA was disabled in case that optical sensor was damaged or disconnected. This has been fixed.

M500 - M503 fix:

In previous firmware version, we have improved functions for storing settings to EEPROM and restoring them (M500 - M503) to provide improved reliability in the future and prevent issues which we had encountered in 3.4.0 firmware. Now we have fixed initialization of new variables, which were added to M500 recently. If you have encountered some issues with slow Z-axis movements in 3.5.0-RC1 version, please upgrade to 3.5.0. Otherwise, there is no change from the user's point of view.

3.4.2 Firmware for Prusa i3 MK3 and MK2.5

19 Oct 19:04
be9f921
Compare
Choose a tag to compare

This firmware version is specifically for users who use MK2.5 + MMU2 setup. If you are not using MMU2 or if you use MMU2 with MK3 printer it is not necessary to upgrade to this version.

Summary:

  • MK2.5 + MMU2 setup loudness reduced
  • MK2.5 + MMU2 setup initialization

Detailed description of changes:

MK2.5 + MMU2 setup loudness reduced:

In previous firmware versions, the MMU2 operation was quite loud when using with MK2.5 printer. This firmware version solves the issue. MK2.5 printer sends command for setting MMU2 currents specifically for usage with MK2.5 and switches MMU2 drivers to stealth mode. For correct behaviour, it is necessary to use MMU firmware 1.0.2 and higher when running MMU2 with MK2.5. Users who use MK3 printer do not need to upgrade their MMU2 firmware.

MK2.5 + MMU2 setup initialization:

MK2.5 was unable to automatically detect MMU2 unit after turning on the printer. This has been fixed.

3.4.1 Firmware for Prusa i3 MK3 and MK2.5

04 Oct 16:19
27a4081
Compare
Choose a tag to compare

This firmware version was focused mostly on fixing critical bugs from 3.4.0 and decreasing filament sensor false detections count while remaining its sensitivity.
There are no changes beween this firmware version and 3.4.1-RC1.

3.4.1-RC1 Firmware for Prusa i3 MK3 and MK2.5

27 Sep 19:27
362797d
Compare
Choose a tag to compare

Summary:

  • filament runout detection bug #1154 fixed
  • stealth mode bug #1152 fixed
  • "filament sensor response is poor, disable it?" feature temporarily disabled
  • statistics during active print bug #1151 fixed
  • OctoPrint "Printer reset detected" warning #1184 issue fixed

Detailed description of changes:

Stealth mode bug:

This issue manifests itself as slow Z-axis movements. This was caused by a bug in storing custom values to EEPROM (M500 and M501 G-codes). These two G-codes were updated to avoid a similar issue in the future.

"filament sensor response is poor, disable it?" temporarily disabled

This was a new feature introduced with filament sensor engine 2.0. Unfortunately, this feature seems to be too sensitive and unreliable so we disabled it for now and we are working on an improved version of it.

3.4.0 Firmware for Prusa i3 MK3 and MK2.5

12 Sep 07:47
0d4f4fe
Compare
Choose a tag to compare

Summary:

  • Multimaterial - version 2 (MMU2) support
  • Filament sensor engine 2.0
  • Improved power panic
  • Adjustable beeper notifications
  • Feedrate and acceleration limits improved for the MK3
  • PINDA state shown in menu (MK3)
  • Time remaining fix

Detailed description of changes (compared to 3.4.0-RC2):

Multi Material unload improved:

Filament unload now contains ramming sequence. This ensures that tip of unloaded filament has no significant "strings" and thus overal reliability of printer in multimaterial mode is improved (stringing during unload could sometimes cause false FINDa triggering or jamming).

Time remaining fix:

Fixed issues #1103 and #1120.
In case that printer shows estimated time remaining (it must be supported in gcode file) and user changes speed factor during print, estimated time became inaccurate. In this case, there is "?" character shown on status screen to inform user that estimated remaining time is accurate only for case that speed factor is not changed.

Menus fix:

In previous firmware versions (3.4.0-RC1 and 3.4.0-RC2) there was bug which caused undesired printer behaviour (clear screen at the beginning of PID calibration, fullscreen messages was sometimes returning to main menu instead of going to status screen etc.). This has been fixed.

New messages translated:

New messages was translated to supported languages. This affects especially users who will use priner together with MMU2 (multi material unit v2).

3.4.0-RC2 Firmware for Prusa i3 MK3 and MK2.5

30 Aug 15:16
c24f673
Compare
Choose a tag to compare

Summary:

  • Multimaterial - version 2 (MMU2) support
  • Stealth mode loudness reduced (MK3)
  • Fixed bugs from RC1
  • PINDA state shown in menu (MK3)

Detailed description of changes:

Multimaterial - version 2 (MMU2) support:

This firmware version (both MK3 and MK2.5) is initial version with Multimaterial v2 support. Firmware detects automaticly if mmu2 unit is connected. More information about multimaterial features will be added later. Multimaterial specific messages are just in English now. Translation of all messages will be finished in final release.

Stealth mode loudness reduced:

In previous firmware version (3.4.0-RC1), stealth mode speed was increased which led to significantly increased loudness. In current firmware version stealth mode max. feedrate limit has been reduced to 100mm/s, which leads to reduced loudness and preserves reduced print time compared to older firmware versions (3.3.1 and older).

Fixed bugs from RC1:

  • Flow factor setting fixed

  • Bed level correction menu fixed (issue #1083)

  • Wizard fix: Before first layer calibration, user is asked if there is PLA filament loaded. If not, printer turn on nozzle heater and when target temperature is reached, user is asked to load filament. In this scenario, there was bug which caused that load filament sequence could be activated more then once. This led to undesirable extruder movements (too much material extruded). This bug has been fixed.

  • Linearity correction menu readded (MK3)

  • M600 fixes: There was bug which caused reseting during filament change when printing over USB (issue #1046) and also some extra material was extruded at the end of filament change procedure which formed little blob on printed object. These two bugs have been fixed.

  • Speed factor fix (issue #1047)

3.4.0-RC1 Firmware for Prusa i3 MK3 and MK2.5

14 Aug 21:52
4cc127f
Compare
Choose a tag to compare

Summary:

MK3 and MK2.5:

  • Filament sensor engine 2.0
  • Improved power panic
  • Adjustable beeper notifications
  • G-code M84 reenabled
  • Feedrate and acceleration limits fixed for the MK3

Detailed description of changes:

Filament sensor engine 2.0:

This release brings a major update to the filament sensor. Part of the software responsible for the analysis of the filament movement was rewritten to increase the precision and reliability of the sensor. With the new firmware, the filament runout should be always detected in time and the number of false detections drops significantly. Previously MK3 and MK2.5 shared similar values for the evaluation and it was sometimes causing issues on the MK2.5, this is now fixed.

Engine 2.0 brings also a new feature for the filament evaluation. During the filament load sequence, the filament is scanned using the IR sensor and evaluated. As soon as the filament is loaded to the extruder the printer knows, whether it can reliably control the filament flow during the print or not. In case the sensor can't read the filament movement properly, the user is informed on the printer's screen with an option to turn off the sensor.

Poor filament detection

Filament sensor precision is greatly influenced by the cleanliness of the sensor itself. The easiest way is to use a compressed air. There is a dedicated hole in the x-carriage exactly for this purpose. See the picture below to compare the clean and dirty sensor.

clean VS dirty sensor

Improved power panic:

During the power outage, MK3 saves the last position of the extruder and as soon as the power is restored, the printer reads the data and continues. In case there are more consecutive power outages, the restore sequence is interrupted and this can sometimes lead to a print failure. A similar failure of the print might occur after a very short power outage (<50 ms). New firmware release fixes both scenarios.

Adjustable beeper notifications:

Starting firmware 3.4.0 there are 4 levels of the acoustic signalization - Loud, Once, Silent and Mute. The user is able to choose between each level in the printer's menu -> Settings –> Sound. You can also change the sound settings during the print in the menu -> Tune.

Level description:
Loud - printer uses acoustic signalization for a failure or if confirmation is needed
Once - this level is similar to Loud, but all beeps are played only once.
Silent - most of the beeps are muted, the user is informed only in case of a serious error
Mute - printer stays muted regardless of the importance of the error

Beeper level

G-code M42 reenabled:

Due to the insufficient space in the printer's memory, the G-code M42 was previously removed from the firmware. The entire code of the firmware is now optimized and M42 returned back. You can use it to trigger or read from the pins on the board (e.g. trigger time-lapses on your camera).

Feed-rate and acceleration limits fixed for the MK3:

Until now the feedrate and acceleration values were compared to the hardcoded limits of the printer during the entire print at every movement, which caused high CPU load. New implementation checks for G-codes M201 and M203 only at the beginning of the print. If the input values are smaller than hardcoded values, no action is triggered. In case the values from G-code are bigger, the firmware replaces them with hardcoded ones.

Current limits for the MK3 in the firmware:

Stealth mode:
feed-rate 172 mm/s
acceleration 960 mm/s^2

Normal mode:
feed-rate 200 mm/s
acceleration 2500 mm/s^2

3.3.1 Firmware for Prusa i3 MK3 and MK2.5

16 Jul 19:16
044705a
Compare
Choose a tag to compare

Summary:

MK3 and MK2.5:

  • Filament statistics fix
  • G28 fix
  • Load filament improvement
  • Setup function fix

Detailed description of changes:

Filament statistics fix:

Fixes issue #901.

G28 fix:

There was missing OK after G28 (auto home) gcode execution (issue #924) which could cause communication timeouts and also undesired mesh bed leveling was run in the end of temperature calibration. Both was caused by bug in G28 gcode. It has been fixed.

Load filament improvement:

Load filament sequence now contains movement in Z axis if current Z coordinate is lower then 20mm when loading filament starts. This will ensure that there is always enough space for cleaning the nozzle.

Setup function fix:

  • Splash screen fix
  • Factory reset -> Shipping prep. enables filament sensor

3.3.0 Firmware for Prusa i3 MK3 and MK2.5

02 Jul 15:25
7bbbb38
Compare
Choose a tag to compare

Summary:

MK3:

  • 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)

MK2.5:

  • 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.

Others:

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

3.3.0-RC1 Firmware for Prusa i3 MK3 and MK2.5

27 Jun 17:00
6940b13
Compare
Choose a tag to compare

Summary:

MK3:

  • 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

MK2.5:

  • 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

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.

Others:

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